发表于: 2017-07-17 22:15:09

2 917


Tiles学习心得

tiles瓦块,正如其名,他把一个网页分成n个瓦块,然后在需要时用到时再去调用这些瓦块,和EL语句配合模块化的网页更容

易管理和维护


如何配置tiles:

首先要拆分网页,把网页完成一类功能的部分分成一个类如head,header,body,footer,text,menu等,然后创建对应的jsp文件

每个jsp文件都应该添加如下代码
<%@taglib prefix="tiles" uri="http://tiles.apache.org/tags-tiles" %>
<%@ page contentType="text/html; charset=UTF-8" language="java" isELIgnored="false" %>

isELIgnored表示是否忽略EL表达式,
如果值为ture那么像${..}这样的直接会原样输出,不会进行EL表达式运算

他需要的依赖
     <dependency>
           <groupId>commons-beanutils</groupId>
           <artifactId>commons-beanutils-core</artifactId>
           <version>1.8.3</version>
       </dependency>
       <dependency>
           <groupId>commons-digester</groupId>
           <artifactId>commons-digester</artifactId>
           <version>2.0</version>
       </dependency>
       <dependency>
           <groupId>log4j</groupId>
           <artifactId>log4j</artifactId>
           <version>1.2.15</version>
       </dependency>
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-api</artifactId>
           <version>1.5.8</version>
       </dependency>
       <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
           <version>1.4.2</version>
       </dependency>
       <dependency>
           <groupId>org.apache.tiles</groupId>
           <artifactId>tiles-api</artifactId>
           <version>2.2.1</version>
       </dependency>
       <dependency>
           <groupId>org.apache.tiles</groupId>
           <artifactId>tiles-core</artifactId>
           <version>2.2.1</version>
       </dependency>
       <dependency>
           <groupId>org.apache.tiles</groupId>
           <artifactId>tiles-jsp</artifactId>
           <version>2.2.1</version>
       </dependency>
       <dependency>
           <groupId>org.apache.tiles</groupId>
           <artifactId>tiles-servlet</artifactId>
           <version>2.2.1</version>
       </dependency>
       <dependency>
           <groupId>org.apache.tiles</groupId>
           <artifactId>tiles-template</artifactId>
           <version>2.2.1</version>
       </dependency>

还需要在SpringMVC.xml中加入以下配置
<!--tiles配置-->
   <bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
       <property name="definitions">
           <list>
               <value>/WEB-INF/tiles.xml</value><!--这是tiles.xml路径-->
           </list>
       </property>
   </bean>
   <!-- 配置视图解析器 -->
   <bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver">
       <property name="viewClass">
           <value>org.springframework.web.servlet.view.tiles3.TilesView</value>
       </property>
   </bean>
然后新建一个tiles.xml文件并加入以下内容(内容视实际情况而定)
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE tiles-definitions PUBLIC
       "-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
       "http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
       <tiles-definitions>

   <definition name="base.definition" template="/jsp/templet.jsp">
          <put-attribute name="title" value="" />
          <put-attribute name="header" value="/jsp/head.jsp" />
           <put-attribute name="body" value="" />
           <put-attribute name="footer" value="/jsp/foot.jsp" />
   </definition>
   <definition name="CustomerForm" extends="base.definition">
       <put-attribute name="title" value="HHHHHHH"/>
       <put-attribute name="body" value="/jsp/CustomerForm.jsp"/>
     <put-attribute name="menu" value="/jsp/menu.jsp" />
   </definition>
   <definition name="CustomerDetail" extends="base.definition">
       <put-attribute name="title" value="DDDDDD"/>
       <put-attribute name="body" value="/jsp/CustomerDetail.jsp"/>
   </definition>

</tiles-definitions>

由以上配置文件可以看出他有一个父类base.definition,所有的页面都继承他
继承后可以进行重写和添加,如CustomerForm就重写了title和body,还添加了menu

关于js和css在本地测试时正常显示,一部署到服务器上就404的情况
解决办法:
  在IDE运行是加载的是绝对路径,在服务器上运行是加载的相对路径
  最好的办法是把war包在tomcat上运行调试一下路径

I'm from 修真院 还有一件最重要的是..........................................
............................................................................
............................................................................
............................................................................
............................................................................
............................................................................

.........................................................老大最帅!!!


今天完成的事情:

   把t11页面也加上,发现js和css不加载,因为排除被servlt拦截的可能,然后调试还是404,所以知道是路径错了,

   但是改好后还是报错,然后查看网页源代码,点击css链接发现还是404,后发现部署到服务器上是相对路径!

   改好后成功显示

明天计划的事情:

     开始任务五
遇到的问题: 

     js和css不加载

    解决办法:更改路径为相对路径

   git上传太慢,代码只能上传到度盘了


收获:

          没啥太大收获


有jar包版链接http://pan.baidu.com/s/1cIVRSM  密码:iepq

无jar包版链接http://pan.baidu.com/s/1eRHl6ZS 密码:96ge





返回列表 返回列表
评论

    分享到