2012-08-29 40 views
0

我有一個struts2配置文件,並且根據屬性設置URL時有問題。在struts config xml文件中使用* .properties中設置的佔位符

<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> 

爲什麼我需要的是 - 是因爲該網址可能是差異的環境(QA,UAT,PROD等)不同。

那麼是否有可能在struts config中使用屬性設置(例如我們在spring上下文文件中使用它)?

另一個問題是,URL應該是全球性的,例如「www.google.com」。目前,它重定向到錯誤的URL的「http://本地主機/ package_name_here/HTTP://www.goggle.com」

+1

目前的方法有什麼問題?你可以在你的'BaseAction'類中創建一個常量,並且可以像'{property name}'那樣在'redirectAction'中使用這些值。 –

回答

0

您可以在myAction設置屬性myRedirect其getter和setter,與物業設置(與getText(...)),然後在struts.xml中使用它。

myAction

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> 
... 
相關問題