【问题标题】:Use Apache Tiles使用 Apache Tiles
【发布时间】:2012-01-09 18:45:22
【问题描述】:

在我的时区下午好。

我正在开发一个已经投入生产一年多的项目,应用程序服务器运行的是 J2EE 1.3 版本。现在我正在尝试使用 apache tile 框架将内容与布局分开。该项目在WEB-INF/lib 实现 STRUTS 框架的以下库 -struts1.2.6 -struts-core-1.3.10 -struts-extras-1.3.10.jar -struts-taglib-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)

经过调查,我发现了一个帖子,内容如下:

检查应用程序 lib 文件夹以找到 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 库有tile 包,struts-core-1.3.8 没有那个包。 那么我应该怎么做,在这个应用程序中运行图块?

很抱歉问题扩展,但我必须解释所有情况。 最好的祝福 提前感谢任何试图帮助我的人

【问题讨论】:

  • 您要运行哪个版本的 Tiles?你为什么要结合 Struts 1.2.6 和 Struts 1.3.10?!首先,选择一个 Struts 版本。

标签: apache jsp struts tiles


【解决方案1】:

修复你的类路径。在类路径中有两个不同版本的 Struts 没有多大意义。 Struts 1.3.10 的瓦片类位于与 struts-1.3.10 捆绑的 struts-tiles-1.3.10.jar 中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-06-25
    • 2023-03-27
    • 2014-07-05
    • 2011-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    相关资源
    最近更新 更多