使用Apache Tiles

时间:2012-01-09 18:45:23

标签: apache jsp struts tiles

我的时区下午好。

我正在开发一个生产超过一年的项目,应用服务器正在运行J2EE 1.3版本。现在我正在尝试使用apache tiles框架将内容与布局分离。项目在WEB-INF / lib下面的库实现了STRUTS框架  -struts1.2.6  -struts核-1.3.10  -struts-额外-1.3.10.jar  -struts-标签库-1.3.10.jar

介绍完之后,我的梦魇开始了: 1)要配置Tiles,我将以下代码添加到我的struts-config.xml:

<action path="/tilesTest"  
        parameter="aDef" 
        type="org.apache.struts.actions.ForwardAction" />

<controller processorClass="org.apache.struts.tiles.TilesRequestProcessor" />

   <plug-in className="org.apache.struts.tiles.TilesPlugin" >
    <set-property property="definitions-config" value="/WEB-INF/tilesdefs.xml" />
     <set-property property="moduleAware" value="true" />
   </plug-in>

'aDef'参数在tilesdefs.xml中定义。 当我在浏览器中调用该操作时,它会抛出以下异常:

java.lang.NoSuchMethodError:org.apache.struts.config.ForwardConfig.getContextRelative()Z     org.apache.struts.tiles.TilesRequestProcessor.processForwardConfig(TilesRequestProcessor.java:289)

经过调查,我发现了一篇帖子说:

检查应用程序li​​b文件夹以查找struts-core-1.3.8.jar以及struts.jar。正因为如此,抛出异常。 struts.jar有forwardConfig类和getContextRelative()方法。 struts-core-1.3.8.jar有forwardConfig类,但没有getContextRelative()方法。 这导致了这个问题。 因此删除struts.jar以便使用1.3.8版本。 - 另外将struts-extras-1.3.8.jar添加到应用程序库

就像我在乞讨中说的那样,我有相同的两个库,唯一的问题是,struts.jar lib有tile包,struts-core-1.3.8没有那个包。 那么我想要做什么,在这个应用程序中运行tile?

对不起问题扩展,但我必须解释所有情况。 最好的祝福 感谢任何试图帮助我的人

1 个答案:

答案 0 :(得分:2)

修复您的类路径。在类路径中有两个不同版本的Struts没有多大意义。 Struts 1.3.10的tiles类在struts-tiles-1.3.10.jar中,与struts-1.3.10捆绑在一起。