tiles配置及标签使用
Posted 女装大佬大老李
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了tiles配置及标签使用相关的知识,希望对你有一定的参考价值。
- 创建布局文件
Jsp代码
- <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
- <html>
- <HEAD>
- <title><tiles:getAsString name="title" /></title>
- </HEAD>
- <body>
- <table border="0" width="100%" cellspacing="5">
- <tr>
- <td colspan="2"><tiles:insertAttribute name="header" /></td>
- </tr>
- <tr>
- <td width="140" valign="top"><tiles:insertAttribute name='menu' /></td>
- <td valign="top" align="left"><tiles:insertAttribute name='body' /></td>
- </tr>
- <tr>
- <td colspan="2"><hr></td>
- </tr>
- <tr>
- <td colspan="2"><tiles:insertAttribute name="footer" /></td>
- </tr>
- </table>
- </body>
- </html>
布局文件用来规范了整个页面的布局,包括页面上的哪一块应该放入哪个内容,但是具体的内容没有在这个页面上体现出来,所以还需要一个用来指定每块内容的定义文件。 - 创建定义文件
Xml代码
- <?xml version="1.0" encoding="ISO-8859-1" ?>
- <!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=".mainLayout" template="/WEB-INF/views/test/common/layout.jsp">
- <put-attribute name="title" value="Tiles Library Documentation" />
- <put-attribute name="header" value="/WEB-INF/views/test/common/header.jsp" />
- <put-attribute name="menu" value="/WEB-INF/views/test/common/menu.jsp" />
- <put-attribute name="footer" value="/WEB-INF/views/test/common/footer.jsp" />
- </definition>
- <definition name=".test.*.*" extends=".mainLayout" preparer="com.fsti.test.controller.TestViewPrepare">
- <put-attribute name="body" value="/WEB-INF/views/test/1/2.jsp" />
- </definition>
- </tiles-definitions>
定义文件指定了布局文件中每块应该由什么具体内容来填充。注意我们这里使用了通配。 - 在Spring中配置TilesConfigurer和Tiles的视图解析器
Xml代码
- <beans:bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
- <beans:property name="definitions">
- <beans:list>
- <beans:value>/WEB-INF/tiles-defs.xml</beans:value>
- </beans:list>
- </beans:property>
- </beans:bean>
- <beans:bean class="org.springframework.web.servlet.view.UrlBasedViewResolver">
- <beans:property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView" />
- </beans:bean>
- <beans:bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
- <beans:property name="prefix" value="/WEB-INF/views/" />
- <beans:property name="suffix" value=".jsp" />
- </beans:bean>
注意这里还有个JSP用的视图解析器,用来处理不需要被Tiles渲染的视图。 - Controller中返回逻辑视图名
Java代码
- @RequestMapping("/view")
- public String view()
- return ".test.product.product_view";
注意到现在控制器返回的逻辑视图名对应的是一个tiles定义文件中的定义名,这样tiles的视图解析器就会为你正确的渲染视图。
[/list]
可以看到使用Tiles还是很简单的,自从Tiles2.1后就开始支持通配,通过约定命名规范,就可以节省许多定义文件的配置。
<tiles-definitions>标签内主要的子节点就是<definition>标签,这个标签属性如下:
属性 名称 是否必须 值必须 值类型 说明 name true true java.lang.String
指定将要创建的一个definition bean的访问名称。这个必须有的。
template false true java.lang.String
哪一个文件是模板文件,这个模板文件后面会介绍。
role false true java.lang.String
如果配置了这个值的话,需要role的值相等,这个definition才被有效访问,这个功能我没有深究,也不推荐使用,建议大家建立自己更完善的权限控制管理。当然欢迎朋友们完善role应用的示例,tiles自带role的示例,有兴趣的人去读一下就明白了。
extends false true java.lang.String
继承哪一个definition,值是你要继承的definition的name的值。高使用率的属性。
preparer false true java.lang.String
呵,我没使用,如果你要使用的话,要写一个实现他的Prepare接口的类,作用就是在展现你定义的页面前会先执行你的prepare。
以上是关于tiles配置及标签使用的主要内容,如果未能解决你的问题,请参考以下文章
在 geom_tile() 上将 x 轴标签更改为小时(时间)