3

我使用 Struts 已经有一段时间了,但是对于我正在完成的一个项目,我被要求将模板(velocity .vm 文件)、配置(struts.xml、persistence.xml)与主 WAR 文件分开。

我有所有的默认结构,如:

    应用
    |-- META-INF             -- 一些配置在这里
    |-- WEB-INF              -- 其他在这里
    | |-- 班级
    | | |-- 元信息
    | | `--我的包
    | | `-- 类文件
    | `--库
    |-- css
    `-- tpl                  -- 要重定位的模板目录

而且我显然找不到关于如何设置(可能在 struts.xml 中)我的模板所在位置以及配置文件所在位置的文档。

我想我也必须在应用程序服务器上使用配置(我使用的是 Jetty 5.1.14)。

那么,关于如何配置它的任何提示?

谢谢


嗯,关于更改模板位置的全部内容是将模板放在设计人员可访问的区域,因此需要进行任何修改,设计人员可以将它们加载到他/她的计算机,编辑并再次上传。我认为这是一个常见的场景。所以,可能我在研究中遗漏了一些东西。也许我专注于将它配置在错误的地方......有什么想法吗?

4

3 回答 3

1

如果我正确理解了您关于 Struts 配置文件的问题,它们是在 web.xml 中指定的。找到 Struts servlet 配置参数。参数值可以是要加载的以逗号分隔的 XML 文件列表的列表。例如:

<servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
        <param-name>config</param-name>
        <param-value>
            WEB-INF/config/struts-config.xml,
            WEB-INF/config/struts-config-stuff.xml,
            WEB-INF/config/struts-config-good.xml,
            WEB-INF/config/struts-config-bad.xml,
            WEB-INF/config/struts-config-ugly.xml
        </param-value>
    </init-param>
    ...
</servlet>

请参阅5.3.2 下的这个Struts 指南。是的,这也适用于 2.x。

于 2008-10-24T18:27:11.583 回答
0

具体来说,对于persistence.xml,您可以将持久性单元放在单独的 JAR 中,您可以将其与 Web 应用程序 WAR 分开部署,或者将两者一起部署在 EAR 存档中,具体取决于您的应用程序服务器支持的内容。例如,JBoss 手册将其描述为Deploy EAR with EJB3 JAR

对于struts-config.xml,如果您想使用非标准位置,我希望您将不得不覆盖加载它的 Struts 代码。

我不知道 Velocity 模板。

通常,出于安全原因,Web 应用程序仅从 WAR 中加载资源。您可以使用其他技术,但您可能会发现尝试使用 weblets会更容易,它似乎是一个旨在让您从单独的 JAR 加载资源的框架。

于 2008-08-30T10:30:48.480 回答
0

您需要查看velocity.propertiesWEB_INF 文件夹中的文件。恕我直言,您需要在此处更改模板根目录以更改属性file.resource.loader.path

希望它有帮助,彼得

于 2008-10-13T15:24:28.477 回答