2013-05-02 54 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