在我的 JSF 项目中,我有一个带有多个 commandLink 的静态导航树,例如:
<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");
}
}
}
我想要实现的是突出显示已单击的链接,以便用户准确地看到当前查看的导航链接/路径。将调用该事件,但未设置/渲染样式。
我是否遗漏了什么,或者 ActionEvent 是否处于设置 UIComponent 属性的正确阶段?
更新: 动作如下所示:
public String init() {
if (conversation.isTransient()) {
conversation.begin();
}
/*
* Service call for request query
*/
return "/views/list.xhtml";
}