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>