2013-05-02 85 views
1

所以我在頁面範圍內像變盤:參考在個變量:URL action屬性

<s:set name="targetAction" var="targetAction" value="%{'someActionName'}" /> 

我想在<s:url>標籤的action屬性來使用這個「targetAction」變量。這可能嗎?
我試着這樣說:

<s:url action="%{#targetAction}" /> 

但動作屬性不評估,它被設置爲"%{#targetAction}",而不是由someActionName變量<s:set>標籤中指定的值。

有什麼建議嗎?

編輯:

修正用雙引號錯字。

編輯2: 那麼,我使用的是struts 2.1.3,如果這一點很重要的話。反正,我打算在這樣的JavaScript變量使用這個網址:

var targetAction = '<s:property value="%{#targetAction}" />'; 
var actionURL = '<s:url action="<my dynamic action name specified by the targetAction variable needs to be here>" /> 

反正讓它知道action屬性提的是JavaScript變量,而不是一個字符串作爲這樣的價值?我的意思是如何在這種情況下轉義javascript內容?

+0

不要同時使用'name'和'var',我不真的知道會發生什麼。使用'var'是因爲'name'是用於'Struts 2.0'的。 – 2013-05-02 09:07:48

+0

我一直在使用name和var,並且它沒有任何問題。無論如何,我已經糾正了這個問題,並且問題仍然存在:( – mystarrocks 2013-05-02 09:14:57

+0

我希望你不要在'actionURL' var中連接'targetAction' var,就像'actionURL =''; ',對吧? – 2013-05-02 09:35:45

回答

0

是的,這是可能的。 <s:set>標記的name屬性已棄用,請改爲使用var

順便說一句,這個變量沒有在頁面範圍中設置,因爲您沒有使用scope="page",默認值是操作範圍。

而你在action屬性中有錯字。

<s:set var="targetAction" value="%{'someActionName'}" /> 
<s:url action="%{#targetAction}" /> 

的Javascript:

var targetAction = '<s:property value="%{#targetAction}" />'; 
var actionURL = '<s:url action="%{#targetAction}" />'; 
+0

對不起,我的代碼正確,但仍然計算爲%{#targetAction}! struts版本是否重要?我使用2.1.3 – mystarrocks 2013-05-02 08:11:22

+0

爲什麼你使用這樣的舊版本?你能更新嗎? – 2013-05-02 08:26:45

+0

完全不可能:(但是在struts 2.1.3中不支持這個功能嗎?無論如何,我已經通過一些更多的信息更新了我正在尋找的內容 – mystarrocks 2013-05-02 08:53:24

0

你有可能在標籤不使用alTSyntax。嘗試將其設置爲true,地址爲struts.properties

### use alternative syntax that requires %{} in most places 
### to evaluate expressions for String attributes for tags 
struts.tag.altSyntax=true 
+1

'altSynt ax' *力*使用'%{}'進行評估;如果他們已經在使用它,它不應該有影響。加上它默認是真的。 – 2013-05-02 18:59:53

+0

它的確如此,如果您有答案發表您的評論作爲答案,那就是問題。 – 2013-05-02 19:06:14

0

在Struts 2.3工作

  <c:set var="businessActionMapping" value="foo" scope="session"/> 
      <s:form action="%{#session.businessActionMapping}" 

您可能需要設置altSyntax = TRUE在struts.properties