মঙ্গলবার, ১৯ জুন, ২০১২

Cannot convert StudentAdd of type class java.lang.String to class [Ljava.lang.String;

I am trying to pass parameter from JSF page to backing bean following way....


xhtml



<h:form id="menu">
            <p:menubar autoSubmenuDisplay="true">
                <p:submenu id="admin" label="Admin">
                    <p:submenu id="student" label="Student">
                    <p:menuitem id="studentAdd" value="Student Add" action="#{ajaxBean.editAction}" ajax="true">
                        <f:setPropertyActionListener target="#{ajaxBean.action}" value="StudentAdd" />
                    </p:menuitem>
                    <p:menuitem id="studentEdit" value="Student Edit" action="#{ajaxBean.editAction}" ajax="true">
                        <f:setPropertyActionListener target="#{ajaxBean.action}" value="StudentEdit" />
                    </p:menuitem>
                    </p:submenu>
                </p:submenu>
            </p:menubar>
        </h:form>

Managed Bean


package com.ajax;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
 *
 * @author DELL
 */
@ManagedBean(name = "ajaxBean")
@SessionScoped
public class AjaxBean implements Serializable {

    public AjaxBean() {
    }
    public String[] action;

    public void setAction(String[] action) {
        //String[] stringArray = Arrays.copyOf(action, action.length, String[].class);
        this.action = action;
        System.out.println("Menu id is " +action);
    }

    public String editAction() {
        return null;
    }
}


However this exception occurs:
javax.el.ELException: Cannot convert StudentAdd of type class java.lang.String to class [Ljava.lang.String;