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="">
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=""
}"/>
</h:form>
</CENTER></BODY></HTML>
</f:view>
|
- RE: selectOneMenu and selectItem sample Sanoop Kuniel
-