Apache Tiles是一个JavaEE应用的页面布局框架。Tiles框架提供了一种模板机制,可以为某一类页面定义一个通用的模板,该模板定义了页面的整体布局。布局由可以复用的多个块组成,每个页面可以有选择性的重新定义块而达到组件的复用。
平时在配置文件中总是因为路径问题而头疼,tiles帮忙了。
result组件中发type包含了tiles。通过在tiles.xml文件中配置的路径,每一个result返回的jsp页面路径就会很清晰,404的错误就远离了。
写法如下:
1. 在struts.xml文件中添加:
1)定义一个package包,让其继承tiles-default。
<contant name="struts.convention.relative.result.types" value="tiles" />
<package extends="tiles-default" name="centric_default" namespace="/">
<interceptors>
<!-- 登录检查 -->
<interceptor class="org.centric.modules.interceptor.CheckLoginInterceptor" name="checkLogin" />
<interceptor-stack name="default-stack">
<interceptor-ref name="checkLogin" />
<interceptor-ref name="defaultStack">
<param name="exception.logLevel">error</param>
</interceptor-ref>
</interceptor-stack>
<global-results>
<result name="login">/login.jsp</result>
</global-results>
<global-exception-mappings>
<exception-mapping exception="java.lang.Exception" result="exception_stack" />
</global-exception-mappings>
</package>
2) 其他的包继承这个包即可。
<package name="flexpaper" extends="centric_default" namespace="/flexpaper">
<action name="fileconvert" method="*" class="fileconvertAction">
</action>
</package>
3)编写tiles.xml文件
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE tiles-definitions PUBLIC "-//Apache Software Foundation//DTD Tiles Configuration 2.1//EN" "http://tiles.apache.org/dtds/tiles-config_2_1.dtd">
<tiles-definitions>
<!-- template/*nav.jsp -->
<definition name="nav" templateExpression="/templates/template1/templatenav.jsp">
<display-name>目前等同style</display-name>
<put-attribute name="trails" type="template" value="/none.jsp" />
<put-attribute name="showExtMsg" type="template" value="../float_div.jsp" />
<put-attribute name="body" type="template" value="/welcome.jsp" />
</definition>
<definition extends="nav" name="/*/*/*/*">
<put-attribute name="body" type="template" value="/view/{1}/{2}/{3}/{4}.jsp" />
</definition>
</tiles-definitions>