1

したがって、次のようなページスコープに変数を設定しています。

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

<s:url>この「targetAction」変数をタグのアクション属性で使用したいと考えています。これは可能ですか?
私はこの方法を試しました:

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

ただし、action 属性は評価されず、変数によってタグで"%{#targetAction}"指定された値の代わりに設定されます。<s:set>someActionName

助言がありますか?

編集:

二重引用符でタイプミスを修正しました。

EDIT2:まあ、それが重要な場合は、Struts 2.1.3を使用しています。とにかく、私はこのURLを次のような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>" />

アクション属性に記載されている値が文字列ではなくJavaScript変数であることを知らせる方法はありますか? このシナリオで JavaScript コンテンツをエスケープするにはどうすればよいですか?

4

3 に答える 3

0

はい、これは可能です。タグの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

タグで使用していない可能性alTSyntaxがあります。trueに設定してみてください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 に答える