JSF/Facelets アプリケーションで、カスタム タグを使用して、ページ ID のリストからパンくずリストを動的に生成したいと考えています。
<foo:breadcrumbs trail="foo,bar,baz"/>
これにより、次のようなものが生成されます。
<h:commandLink action="foo" ... />
<h:commandLink action="bar" ... />
<!-- (etc.) -->
私のコードは次のようになります。
<ui:repeat value="#{fn:split(trail, ',')}" var="key">
<h:commandLink action="#{key}" ... />
</ui:repeat>
このコードの問題は#{key}
、メソッド バインディングとして解釈されることです。#{key}
ただし、ナビゲーションの結果として文字列値が返されるようにしたいだけです。どうすればこれを達成できますか?
私が考えることができた唯一のことは、フィールドとアクション ハンドラーを持つダミーのマネージド Bean を作成し、outcome
次のように呼び出すことでした。
<h:commandLink action="#{dummy.click}" ...>
<f:setPropertyActionListener target="#{dummy.outcome}" value="#{key}" />
</h:commandLink>
次のように定義されたダミークラスを使用します。
public class Dummy {
private String outcome;
public String click() {
return outcome;
}
public void setOutcome(String outcome) {
this.outcome = outcome;
}
public void getOutcome() {
return outcome;
}
}
それは醜いようですが、うまくいくかどうかはわかりません。