カスタムJSPタグライブラリを使用しようとすると、JSPで定義された変数があり、タグライブラリに渡される前に評価されます。しかし、私はそれを機能させることができないようです。これが私のJSPの簡略版です。
<% int index = 8; %>
<foo:myTag myAttribute="something_<%= index %>"/>
私のdoStartTag()
メソッドはTagHandler
、pageContextの出力ストリームを使用して、入力された属性に基づいて書き込みます。
public int doStartTag() {
...
out.println("Foo: " + this.myAttribute);
}
ただし、最終的なマークアップに表示される出力は次のとおりです。
Foo: something_<%= index %>
私が欲しいものの代わりに:
Foo: something_8
属性のタグライブラリ定義は次のとおりです。
<attribute>
<name>myAttribute</name>
<required>true</required>
</attribute>
rtexprvalue
との両方true
で属性を構成しようとしましfalse
たが、どちらも機能しませんでした。ハンドラーに送信される前に評価されるように属性を構成する方法はありますか?それとも私はこれについて完全に間違っていますか?
私はJSPタグに比較的慣れていないので、この問題を解決するための代替案を受け入れています。また、JSPでスクリプトレットを使用することは嫌われていることにも気づきましたが、ここではいくつかのレガシーコードを使用しているため、今のところはそれに固執しています。
編集:
私も試しました:
<foo:myTag myAttribute="something_${index}"/>
これも機能しません-出力するだけsomething_${index}
です。