Do this:

public class TableForm {

   private List<SelectItem> tables = null;
   private String selectedTable = null;

   public String getSelectedTable() {
       return selectedTable;
   }

   public void setSelectedTable(String selectedTable) {
       this.selectedTable = selectedTable;
   }

   public List<SelectItem> getTables() {
      if(tables == null){
                 tables =  new ArrayList<SelectItem>();
                 tables.add(new SelectItem("1", "Table 1"));
                 tables.add(new SelectItem("2", "Table 2"));
       }
       return tables;
   }

   public String pagetoDisplay() {

       if (selectedTable.equals("1")) {
           System.out.println("Inside 1");
           return "displaytable1";
       }
       else if (selectedTable.equals("2")) {
           return "displaytable2";
       }
       else return null;
   }
}

and the jsp:

<h:selectOneMenu required="true" value=#{tableform.selectedTable}>
        <f:selectItems value="#{tableform.tables}"/>
   </h:selectOneMenu>
    <h:commandButton value="Submit"  action="#{tableform.pagetoDisplay }"/>

This should work now,

cheers,

Gerald

On 9/21/06, Aneesha Govil <[EMAIL PROTECTED]> wrote:


On 9/21/06, Gerald Müllan <[EMAIL PROTECTED]> wrote:
> You don`t need the immediate attribute in this simple usecase.
Removed that. Changed the JSP selectOneMenu to the following:
<h:selectOneMenu value="1">
Also tried with:
<h:selectOneMenu value=" tableform.selectedTable">

Modified the getSelectedItem to as follows:

public SelectItem getSelectedTable() {
        selectedTable = new SelectItem("1", "Table 1");
        return selectedTable;
    }

> Just
> declare the value attribute of the selectOneMenu in the bean and give
> it the type corresponding to the "value"
> type of the SelectItem. In your case is this a String.
>
> private String selectedTable = null;

I have declared this as a SelectItem, any reason why that should not work?

> You have also permuted the "label" and the "value" attribute when
> creating the SelectItem.
> The fist argument is the value (hidden on the page, this is the value
> which is set to the value of the selectOneMenu) and the second one the
> label (can be seen in the drop down). And in your getPagetoDisplay()
method, place the condition of which
> value the selectedTable is.
>

Yes, I figured that, when one wasn't working I tried the other and forgot to
change it back. I have changed it back to
use getValue instead of getLabel.

>
> Any further help needed?

Still getting the null pointer exception in the getPagetoDisplay method :(
 Thanks for trying to help.
Regards,
Aneesha



--
http://www.irian.at

Your JSF powerhouse -
JSF Consulting, Development and
Courses in English and German

Professional Support for Apache MyFaces

Reply via email to