更改 Java Struts 应用程序中的默认文件结构

Changing default file structure in a Java Struts App

提问人:Fernando Barrocal 提问时间:8/30/2008 最后编辑:KevFernando Barrocal 更新时间:11/19/2011 访问量:1015

问:

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

我的所有默认结构如下:

    application
    |-- META-INF            -- Some configs are here
    |-- WEB-INF             -- others here
    |   |-- classes
    |   |   |-- META-INF
    |   |   `-- mypackage
    |   |       `-- class-files
    |   `-- lib
    |-- css
    `-- tpl                 -- Template dir to be relocated

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

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

那么,有什么灯如何配置它吗?

谢谢


好吧,更改模板位置的整个事情是将模板放在设计师可访问的区域,因此任何需要的修改,设计师都可以将它们加载到他/她的计算机上,进行编辑,然后再次上传。我认为这是一个常见的情况。所以,可能我在研究中遗漏了一些东西。也许我专注于在错误的地方配置它......有什么想法吗?

java 模板 struts 配置文件

评论


答:

0赞 Peter Hilton 8/30/2008 #1

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

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

我不知道 Velocity 模板。

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

0赞 petrst 10/13/2008 #2

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

希望对您有所帮助, 切赫

1赞 RayOK 10/25/2008 #3

如果我正确理解了您关于 Struts 配置文件的问题,它们在 web.xml 中指定。找到 Struts servlet 配置参数。param-value 可以是要加载的 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。