从struts.xml加载和读取属性文件

时间:2015-01-16 12:27:07

标签: java struts2 struts-config

我正在使用Struts2创建一个项目。

我是按照以下方式在struts.xml中设置global-results标记:

<global-results>
    <result name="LOGIN" type="redirect">https://www.example.com</result>
</global-results>

我想知道我是否可以从任何其他属性文件中读取url,因此如果将来更改url,我只需要在属性文件中进行更改。如果可以,那我怎么能实现这个目标呢? struts2中有类似PropertyPlaceholderConfigurer类的spring框架吗?

1 个答案:

答案 0 :(得分:1)

我想出了一种实现这一目标的方法:单独使用Struts,你无法读取属性名称 - 值对,但是可以通过Spring和动作类来实现。

使用Spring PropertySourcesPlaceholderConfigurer,我们可以使用.properties${name.in.prop.file}文件读取值,因此我们可以在构造Action bean时添加参数,如下所示:

<bean id="someAction" class="path.to.someAction" scope="session">
    <property name="manager1" ref="manager1" />
    <property name="manager2" ref="manager2" />
    <property name="myWebsiteURL" value="${my.website.url}" />
</bean>

并且,在Action类中定义myWebsiteURL类型java.lang.String及其getter / setter,这样Spring可以在创建Action类时在myWebsiteURL中注入所需的值。 / p>

最后,使用struts.xml${myWebsiteURL}中调用此值,这样做(为什么它的工作仍有待调查,但它有效)。例如,您可以这样写:

<action name="goToSomeSite" method="goToSomeSite" class="myAction">
     <result name="success" type="redirect">${myWebsiteURL}</result>
     ....
</action>

我唯一不理解的是如何评估${myWebsiteURL}。春天? Struts的? JSTL? (我的项目中没有包含JSTL库)