Struts2.0.11.1/2 + Tiles 2.0.4(是Struts2.0.11的一部分)
Struts2.0.11.2比Struts2.0.11.1修改了一些安全性问题。
配置根据网上的例子Tiles的时候,出现两个比较头疼的问题,终于弄明白错在什么地方了。
1. org.apache.tiles.taglib.UseAttributeTag$Tei 找不到的问题。
10:12:31,343 ERROR [[jsp]] Servlet.service() for servlet jsp threw exception
java.lang.ClassNotFoundException: org.apache.tiles.taglib.UseAttributeTag$Tei
这个是因为在layout.jsp里面的taglib说明行里面:
原来使用的是/WEB-INF/tiles.tld。跟当前版本不对应。 从tiles-jsp-2.0.4.jar中解压出tiles-jsp.tld。放到合适的位置,在声明的时候写对就可以了。
另外: WEB-INF/lib 添加jar: tiles-api-2.0.6.jar tiles-core-2.0.6.jar tiles-jsp-2.0.6.jar
2. Attribute 'header' not found.
10:36:05,734 ERROR [RenderTagSupport] Error during rendering
javax.servlet.jsp.JspException: Error executing tag: Attribute 'header' not found.
这个问题出在struts.xml中定义的
本文来自:http://www.xuebuyuan.com/675702.html
org.apache.tiles.impl.BasicTilesContainer.DEFINITIONS_CONFIG
/WEB-INF/tiles.xml
这个tiles.xml中的DOCTYPE 说明字段是这样的:
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://jakarta.apache.org/struts/dtds/tiles-config.dtd">
这样是错误的,应该写成
"-//Apache Software Foundation//DTD Tiles Configuration 2.0//EN"
"http://tiles.apache.org/dtds/tiles-config_2_0.dtd">
来自:http://www.xuebuyuan.com/675702.html