0

我有一个 struts2 配置文件,并且根据属性设置 URL 时遇到问题。

<action name="ABC" class="myAction" method="myMethod" >
            <result name="direct" type="redirectAction">
                <param name="namespace">/navigate</param>
                <param name="actionName">logout</param>
            </result>
            <result name="nonDirect" type="redirectAction">{url.set.in.properties}</result>
        </action>

为什么我需要那个 - 因为这个 URL 对于不同的环境(QA、UAT、prod 等)可能不同。

那么是否可以在 struts 配置中使用属性设置(例如我们在 spring 上下文文件中使用它)?

另一个问题是 URL 应该是全局的,例如“www.google.com”。目前它重定向到错误的网址“http://localhost/package_name_here/http://www.goggle.com”

4

1 回答 1

0

您可以使用其 getter 和 setter 在您myAction的属性myRedirect中设置,使用属性 (with getText(...)) 设置它,然后在struts.xml.

我的行动

class myAction extends ActionSupport {
    ...
    private String myRedirect; // TODO: Getters and setters
    ...
    public String execute () {
        ...
        myRedirect = getText('url.set.in.properties');
        ...
    }
}

然后在 struts.xml 中放置一个类型redirect为重定向到绝对 url 的结果:

struts.xml

...
<action name="ABC" class="myAction" method="myMethod" >
   <result type="redirect">
       <param name="location">${myRedirect}</param>
   </result>
</action>
...
于 2012-08-29T11:17:10.913 回答