突然发现struts和struts2根本就是有着本质的差别
里面很多的配置都是完全不一样的
struts1中的tiles只算是apache的一个小插件 但是到struts2中tiles已经成为Apache的一个项目来研发,可见其重要性
就研究struts2和tiles的配置我就花了好长时间
下面把我的配置文件发出来,以防以后忘记
web.xml
<filter>
<filter-name>R</filter-name>
<filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
</filter>
<filter-mapping>
<filter-name>R</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Tiles Config 添加监听器和配置文件-->
<context-param>
<param-name>org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG</param-name>
<param-value>/WEB-INF/tiles.xml</param-value>
</context-param>
<!-- Tiles Listener -->
<listener>
<listener-class>org.apache.struts2.tiles.StrutsTilesListener</listener-class>
</listener>
struts.xml
自己的包继承"tiles-default" 或者 添加<result-type>属性
<package name="R" extends="tiles-default">
<!-- <result-types>
<result-type name="tiles" class="org.apache.struts2.views.tiles.TilesResult"/>
</result-types>-->
tiles.xml
注意红色的部分,添加的是tiles.不是jarkata之类的,因为添加别的话不能使用put-attribute只有tiles.可以使用
<?xml version="1.0" encoding="UTF-8"?>
<!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="in" template="/layout/basiclayout.jsp">
<put-attribute name="header" value="/public/index_header.jsp"/>
<put-attribute name="left" value="/public/login_left.jsp"/>
<put-attribute name="body" value="/index/login.action"/>
<put-attribute name="footer" value="/public/index_footer.jsp"/>
</definition>
</tiles-definitions>
tiles.dtl
随便找个tiles-jsp.jar文件中的META-INF文件下有个tld文件,这个文件夹下面的.tld文件就是直接复制就来就ok