提问人:Fernando Barrocal 提问时间:8/30/2008 最后编辑:KevFernando Barrocal 更新时间:11/19/2011 访问量:1015
更改 Java Struts 应用程序中的默认文件结构
Changing default file structure in a Java Struts App
问:
我已经使用 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)。
那么,有什么灯如何配置它吗?
谢谢
好吧,更改模板位置的整个事情是将模板放在设计师可访问的区域,因此任何需要的修改,设计师都可以将它们加载到他/她的计算机上,进行编辑,然后再次上传。我认为这是一个常见的情况。所以,可能我在研究中遗漏了一些东西。也许我专注于在错误的地方配置它......有什么想法吗?
答:
具体而言,对于持久性 .xml,您可以将持久性单元放在单独的 JAR 中,该 JAR 可以与 Web 应用程序 WAR 分开部署,也可以将两者一起部署在 EAR 归档中,具体取决于应用程序服务器支持的内容。例如,JBoss 手册将其描述为使用 EJB3 JAR 部署 EAR。
对于 struts-config.xml,如果您想使用非标准位置,我希望您必须覆盖加载它的 Struts 代码。
我不知道 Velocity 模板。
通常,出于安全原因,Web 应用程序仅从 WAR 中加载资源。您可以使用其他技术,但您可能会发现尝试 weblet 更容易,这似乎是一个旨在让您从单独的 JAR 加载资源的框架。
您需要查看WEB_INF文件夹中的文件。恕我直言,您需要在此处更改模板根目录,更改属性。velocity.properties
file.resource.loader.path
希望对您有所帮助, 切赫
如果我正确理解了您关于 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。
上一个:模板分布在多个文件中
下一个:在 Xcode 中更改模板
评论