カスタムJSPタグライブラリを使用しようとすると、タグライブラリに渡される前に評価されたいJSPで変数が定義されています。しかし、私はそれを動作させるように見えることはできません。ここに私のJSPの簡易版だ:JSPタグハンドラに渡す前に変数を評価する
<% int index = 8; %>
<foo:myTag myAttribute="something_<%= index %>"/>
私TagHandler
のdoStartTag()
方法は、入力された属性に基づいて書くことのpageContextの出力ストリームを使用しています。しかし
public int doStartTag() {
...
out.println("Foo: " + this.myAttribute);
}
、私は最終的に出力を参照しますマークアップは次のとおりです。
Foo: something_<%= index %>
代わりに私が何をしたいの:
属性のFoo: something_8
私のタグライブラリの定義は次のとおりです。私はrtexprvalue
両方true
とfalse
で属性を設定しようとしましたが、どちらも働い
<attribute>
<name>myAttribute</name>
<required>true</required>
</attribute>
。属性がハンドラに送信される前に評価されるように属性を構成する方法はありますか?それとも、私はこれについて完全に間違っているのですか?
私はJSPタグが比較的新しいので、この問題を解決するための選択肢があります。また、JSPでスクリプトレットを使用することは歓迎されていますが、ここではいくつかのレガシーコードを使用していますので、今のところそれに固執しています。
編集:私も試してみました
:
<foo:myTag myAttribute="something_${index}"/>
どちらか動作しません - それだけでsomething_${index}
を出力します。
に
からそれを変更する必要があります、私は」実際にもそれを試してみましたが、私にとってはうまくいきませんでした。質問を更新しますが、答えに感謝します。 –