gpt4 book ai didi

java - Icefaces 菜单栏处理

转载 作者:行者123 更新时间:2023-12-01 15:51:57 25 4
gpt4 key购买 nike

以下是我的主页:

<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;
}
}

谁能告诉我如何处理菜单项的 Action 事件?

最佳答案

首先,您似乎不清楚使用 action()actionListener() 之间的区别。当您想要返回导航规则的内容时,您需要使用 action()。当您不想返回任何内容但希望更新页面上的某些组件时,可以使用 actionListener()

从您的代码来看,您似乎不打算导航到任何其他页面,因此请从ice:menuItem 组件中取出 action() 方法。

<ice:menuItem id="myPage" value="MyPage" 
actionListener="#{a.listener}" >
<f:param name="myParam" value="myPage"/>
</ice:menuItem>

我假设您在 faces-config.xml 中将 a 定义为托管 bean。

关于java - Icefaces 菜单栏处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5853133/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com