【发布时间】:2012-05-04 21:04:57
【问题描述】:
我在 jboss AS (5.1.0-GA) 中运行我的 sruts 2 (2.1.8.1) 应用程序。我将 a.war 和 b.war 放在同一个 /server/default/deploy 路径中,并将 struts 2 库放在 /server/default/lib 路径中。
应用程序或服务器中没有错误消息,但是当我输入http://localhost:8080/b/时由于某种原因我进入b.jsp页面时,应用程序的消息资源中的消息a。
所以,我的问题是: 将struts jar 放在服务器的/lib 中只会创建一个所有应用程序都必须使用相同的值堆栈实例?如果是这样,我该怎么做才能为每个应用程序提供不同的实例,但将 jars 保留在服务器路径中?
我应该把 struts jar 带回战争吗?
谢谢
我使用struts标签获取系统标题
<s:property value="%{getText('system.title')}"/>
这是我对 a.war 的配置:
/WEB-INF/classes/a-message-resources.properties
system.title=Namefor system A
在我的 struts.xml 中
<constant name="struts.custom.i18n.resources" value="a-message-resources" />
这是 b.war 的配置
/WEB-INF/classes/b-message-resources.properties
system.title=Namefor system B
在我的 struts.xml 中
<constant name="struts.custom.i18n.resources" value="b-message-resources" />
【问题讨论】:
-
我喜欢你的问题,因为它很奇怪。我看不出 struts2 对此有何过错。您能否创建两个新的最小 struts2 应用程序,每个应用一个 jsp,一个资源文件,一个消息并验证您是否可以重新创建此问题?
-
嗨四元数,感谢您的关注。我已经做到了,不是 2 个,而是 3 个简单的应用程序:a.war、b.war、c.war。接下来发生的事情:a.war首先启动并正确显示了jsp中的文本,应用程序b显示了消息,但不是它自己的属性中的那个,而是a应用程序中的那个,而第3个应用程序没有显示任何消息,只是“system.title.c”,因为它找不到键名,现在我可以看到 struts 只加载了 1 个属性文件,即第一个加载的文件。
标签: struts2 jboss5.x libs valuestack