发表于: 2017-09-28 20:59:29
1 697
今天完成的事情:
1.完成了tiles的配置
一个简单的小demo
项目结构:
tiles配置文件tiles.xml
<tiles-definitions>
<definition name="base" template="/WEB-INF/jsp/layout/layout.jsp">
<put-attribute name="footer" value="/WEB-INF/jsp/layout/foot.jsp"/>
<put-attribute name="header" value="/WEB-INF/jsp/layout/head.jsp"/>
<put-attribute name="menu" value="/WEB-INF/jsp/layout/menu.jsp"/>
<put-attribute name="body" value=""/>
</definition>
<definition name="myView" extends="base">
<put-attribute name="body" value="/WEB-INF/jsp/layout/index.jsp"/>
</definition><tiles-definitions>
web.xml(监听器)
<listener>
<listener-class>org.apache.tiles.extras.complete.CompleteAutoloadTilesListener</listener-class>
</listener>
springmvc-servlet
<!--使用default服务器处理异常-->
<mvc:default-servlet-handler />
<!--映射到tiles文件的viewResolver-->
<bean id="tilesViewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver" p:order="1">
<property name="viewClass" value="org.springframework.web.servlet.view.tiles3.TilesView"/>
</bean>
<!--加载tiles配置-->
<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles3.TilesConfigurer">
<property name="definitions">
<list>
<value>/WEB-INF/tiles.xml</value>
</list>
</property>
</bean>
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="2">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="prefix" value="/WEB-INF/jsp/"/>
<property name="suffix" value=".jsp"/>
</bean>
要注意到tilesViewResolver的优先度比解析jsp的ViewResolver的优先度要高
控制器
@RequestMapping(value = "/")
public String testTiles() {
return "myView";
}
这里的重点是不存在myView.jsp,映射的是tiles.xml中的definition name
组件到齐,可以部署了
效果
将几个jsp文件的内容组装在一起了,没做到验收的标准,不过可以接着下去做了
2.复用t10和t11的代码
做不到,真的做不到,尝试着复用了一下,但是总是出错,不是效果出不来(头部),不然就是字体位置不对(底部),我观察了一下两个html的代码,发现是不一样的,复用是可以做到的,但是效果不好
不过姑且还是使用了tiles
t10部分
组件
tiles.xml
样板文件layout.jsp
效果:
一模一样
如果头部和底部的代码是一样的话,是可以实现复用的,但是这个就免了,强行复用,反而效果不好
明天计划的事情:
准备小课堂,能准备完的话继续做任务
遇到的问题:
1.tiles的配置
从SVN上下载了韦杰师兄的代码(很惭愧),以及官方网站的SVN上下载了示例代码,发现自己的配置使web.xml上少了一个监听器
2.无法加载静态资源
一开始是因为没有配置默认servlet加载,这个没有问题
但是后面就是在WEB-INF的jsp目录下图片无法加载
应该加载出三张图片,但是只出了两张,是WEB-INF下不能存放静态资源吗?不太清楚
后面的错误就比较白痴了……使用了一张白色图片去加载,和网站背景颜色一样,看不出来
非常感谢韦杰师兄和张鑫师兄的帮助
收获:
1.学会tiles框架的配置、以及使用tiles复用组件
2.学会如何加载动态资源
3.知道了怎么从svn上下载东西
4.当tomcat提示404想要加载的资源不存在或服务器不愿意暴露资源时,一定要看tomcat的日志!网页上的错误只有一行字,但是日志里会很详细的说明为什么找不到资源!回头看了一下昨天的日志,发现如果昨天有看日志的话,不会浪费一天的时间!
进度:
任务3开始时间:2017.09.26
预计demo时间:2017.09.30
延期风险:有
理由:延期是肯定会延期了……自己被卡了一天还死磕,今天进度也不如人意,还要准备小课堂,也许要延期1~2天,本想着这次时间已经够宽松了,看来还是太年轻啊
禅道
http://task.ptteng.com/zentao/project-task-350.html
评论