发表于: 2017-07-17 22:15:09
2 918
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
评论