• Post Reply
  • Bookmark Topic Watch Topic
  • New Topic

icefaces menuitem event handler

 
Adnan Gondal
Ranch Hand
Posts: 35
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
Hello all!
Following is my home page.

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

Following is my bean class

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

Can anyone please tell me how to handle action event of menu item?
Thanks in advance.
 
Tim Holloway
Saloon Keeper
Pie
Posts: 18098
50
Android Eclipse IDE Linux
  • Mark post as helpful
  • send pies
  • Quote
  • Report post to moderator
If you use the "Code" button on our message editor to wrap your code and XML samples, they will be easier to read.

As for your logic, you are making things much, much too difficult.

You don't need a Listener if you have an action method. And in fact, you rarely need to code action listeners. I cannot remember when I last did so.

You also don't need all that complicated logic to get the value from the form request. JSF reads the form, validates the data and updates the backing bean's properties automatically. All you need to do in your action method is to use the properties the same way you would in non-JSF POJO code.
 
  • Post Reply
  • Bookmark Topic Watch Topic
  • New Topic