Simply try to set a value in the selectOneMenu:
<h:selectOneMenu required="true" value="#{whateveryouwant}">
<f:selectItems value="#{tableform.tables}"/>
</h:selectOneMenu>
Sanoop Kuniel schrieb:
Try removing immediate="true" on your JSF page
- Sanoop
------------------------------------------------------------------------
*From:* Aneesha Govil [mailto:[EMAIL PROTECTED]
*Sent:* Thursday, September 21, 2006 8:22 PM
*To:* MyFaces Discussion
*Subject:* Re: selectOneMenu and selectItem sample
Hi,
I am using navigation to load another JSP according to what was
selected in the drop down. However in the getPageToDisplay method
below, the selectedItem is null and there is a null pointer exception.
So I get an error "Error calling action method of component...".
Does anyone have any idea how to fix this?
Thanks.
The Form bean is below:
import java.util.ArrayList;
import java.util.List;
import javax.faces.model.SelectItem;
public class TableForm {
private List<SelectItem> tables = new ArrayList<SelectItem>();
public TableForm() {
tables.add(new SelectItem("Table 1", "1"));
tables.add(new SelectItem("Table 2", "2"));
}
private SelectItem selectedTable = null;
public SelectItem getSelectedTable() {
return selectedTable;
}
public void setSelectedTable(SelectItem selectedTable) {
this.selectedTable = selectedTable;
}
public List getTables() {
return tables;
}
public String getPagetoDisplay() {
if (selectedTable.getLabel().equals("1")) { // Null pointer
exception here
System.out.println("Inside 1");
return "displaytable1";
}
else if (selectedTable.getLabel().equals("2")) {
return "displaytable2";
}
else return "";
}
}
The JSP file is:
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<f:view>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD><TITLE>Plain Table</TITLE>
<LINK REL="STYLESHEET"
HREF="./css/styles.css"
TYPE="text/css">
</HEAD>
<BODY>
<CENTER>
<TABLE BORDER=5>
<TR><TH CLASS="TITLE">Plain Table Demo</TH></TR>
</TABLE>
<P>
<h:form>
<h:selectOneMenu required="true">
<f:selectItems value="#{tableform.tables}"/>
</h:selectOneMenu>
<h:commandButton value="Submit" immediate="true"
action="#{tableform.getPagetoDisplay }"/>
</h:form>
</CENTER></BODY></HTML>
</f:view>