2016-06-17 26 views
1

JSPでStruts2を使用する。次のコードは正常に動作します:Struts2の使用:getText()で変数を設定する

<s:if test="foo == bar"> 
    <s:set var="keyValue">message.string1</s:set> 
</s:if> 
<s:else> 
    <s:set var="keyValue">message.string2</s:set> 
</s:else> 

<s:text name="%{keyValue}"/> 

すなわち、keyValuemessage.string1またはmessage.string2の値に基づいて、結果のHTMLページへのリソースファイルと、正しく出力から見上げています。

<s:submit value="getText('message.string1')" ../> 

問題は、私は」できることです:属性値では国際化のために、Struts tag documentationの下部に説明したように

しかし、私の代わりに私がgetText('...')を使用する必要があり、Strutsのテキストタグを使用することはできません上記のgetText()コールで解決された%{keyValue}を取得してください。私が試した構文は何でも:getText('%{keyValue}')getText(%{keyValue})getText(keyValue)getText('keyValue')最終的にはnullと評価されてしまいます。これは私の部分で構文エラーですか、それとも単に実行できませんか?私がしている場合は、私は戻って、それぞれの下にタグを提出して<s:if><s:else>を使用しに行くことができます知っている:

<s:if test="foo == bar"> 
    <s:submit value="getText('message.string1')" ../> 
</s:if> 
<s:else> 
    <s:submit value="getText('message.string2')" ../> 
</s:else> 

...しかし、私は、可能な場合は、重複を避けるためにしたいと思います。

+0

てみ '' – binoternary

答えて

0

普通のkeyValueはほとんどの場合有効ですが、varの値の前には、#のプレフィックスを付けてください。 表現全体には、1組の%{}しか使用しないでください。

<s:submit value="%{getText(#keyValue)}" /> 
+0

'平野keyValueのが最もcases'に動作しますので、あなたはそれそれのケースがあるわけないが動作しませんか? –

+0

@RomanCここでは ' - は動作しません。 –

関連する問題