1

所以我在页面范围内设置了一个变量,例如:

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

我想在标签的 action 属性中使用这个“targetAction”变量<s:url>。这可能吗?
我试过这样:

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

但是 action 属性没有被评估,它被设置为而不是由变量在标签"%{#targetAction}"中指定的值。<s:set>someActionName

有什么建议么?

编辑:

用双引号更正了错字。

EDIT2:好吧,如果这很重要,我正在使用struts 2.1.3。无论如何,我打算在这样的 javascript 变量中使用这个 url:

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 内容?

4

3 回答 3

0

您可能没有alTSyntax在标签中使用。尝试将其设置为truein struts.properties

### use alternative syntax that requires %{} in most places
### to evaluate expressions for String attributes for tags
struts.tag.altSyntax=true 
于 2013-05-02T14:10:00.480 回答
0

是的,这是可能的。tag的name属性已<s:set>被弃用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}" />';
于 2013-05-02T07:59:52.403 回答
0

在 Struts 2.3 中工作

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

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

于 2013-09-11T10:20:42.160 回答