1

問題が発生しています。なぜこれが起こっているのかよくわかりません。OGNL はかなり新しいので、タイルを定義したレイアウトがあり、別のタイルがこのレイアウトを拡張し、キーを配置します。そのキーのDBに値を表示するために使用されkeyNameます.

<s:label value="%{getText('%{keyName}')}"/>

しかし、DBの値ではなくkeyNameの値を表示しています...、keyValueをハードコーディングして問題なく動作する場合、たとえば:

<s:label value="%{getText('strWelcome')}"/>

これはDBのキーの値を正しく表示しますstrWelcome...修正方法について何かアドバイスはありますか??

注: をkeyNameJSTL 変数のように使用してみましたが、動的な値を に渡すことはできないとのことgetText()です。

4

1 に答える 1

3

OGNL はそのようには機能しません。それはOGNL 式であるかどうかに関係なく、「これは OGNL 式です」とは言わず、式の中で「ああ、これは OGNL 式です」と言うだけです。一度。

最終結果は、おそらく正しい式です。

<s:label value="%{getText(keyName)}"/> 

値属性であるため、OGNLが想定されていると思われるため、これは機能するはずです

<s:label value="getText(keyName)"/> 

これは、変数「keyName」がアクションスコープにあることを前提としています。別のスコープにある場合は、「#」を追加する必要があるか、より具体的に指定できます。別のスコープへのアクセスの詳細については、http://strutsを参照してください。 .apache.org/release/2.2.x/docs/ognl.html

于 2013-05-10T20:08:21.797 に答える