私のJSFプロジェクトには、次のような複数のcommandLinksを持つ静的ナビゲーションツリーがあります。
<h:commandLink id="navlinksearchperson"
action="#{bean.someAction}"
value="#{messages['menu.person']}"
actionListener="#{styleBean.changeSelection}">
</h:commandLink>
アクション リスナーは次のようになります。
@RequestScoped
@Named("styleBean")
public class StyleBean {
public void changeSelection(ActionEvent event) {
if (event.getComponent() instanceof HtmlCommandLink) {
((HtmlCommandLink) event.getComponent()).setStyle("font-weight : bold; color : white");
}
}
}
私が達成したいのは、クリックされたリンクを強調表示して、ユーザーが現在表示されているナビゲーションリンク/パスを正確に確認できるようにすることです。イベントは呼び出されますが、スタイルは設定/レンダリングされません。
UIComponent の属性を設定するための適切なフェーズに ActionEvent がありませんか?
更新: アクションは次のようになります。
public String init() {
if (conversation.isTransient()) {
conversation.begin();
}
/*
* Service call for request query
*/
return "/views/list.xhtml";
}