java icefaces菜单栏处理
以下是我的主页:
<h:body styleClass="ice-skin-rime">
<h:form id="form">
<ice:menuBar orientation="#{menuBar.orientation}">
<ice:menuItem value="HRM" id="hrm">
<ice:menuItem id="myPage" value="MyPage"
actionListener="#{a.listener}"
action="#{a.param}">
<f:param name="myParam" value="myPage"/>
</ice:menuItem>
</ice:menuItem>
</ice:menuBar>
</h:form>
</h:body>
下面是我的bean课程
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.event.ActionEvent;
import java.util.Map;
public class a
{
private String param;
private String orientation = "horizontal";
public String getParam()
{
return param;
}
public void setParam(String param)
{
this.param = param;
}
public void listener(ActionEvent e)
{
FacesContext facesContext = FacesContext.getCurrentInstance();
Map params = facesContext.getExternalContext().getRequestParameterMap();
String myParam = (String) params.get("myParam");
if (myParam != null && myParam.length() > 0)
{
setParam(myParam);
}
else
{
setParam("not defined");
}
}
public String getOrientation()
{
return orientation;
}
public void setOrientation(String orientation)
{
this.orientation = orientation;
}
}
有谁能告诉我如何处理菜单项的动作事件吗
# 1 楼答案
首先,您似乎不清楚使用
action()
和actionListener()
之间的区别。当您想要为导航规则返回某些内容时,您需要使用action()
。当您只想更新页面上的某些组件而不想返回任何内容时,可以使用actionListener()
从代码来看,您似乎不打算导航到任何其他页面,所以从ice:menuItem组件中取出
action()
方法我假设
a
在faces-config.xml
中定义为托管bean