发表于: 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




返回列表 返回列表
评论

    分享到