0

学生の名前を含むタブを持つアコーディオン パネルがあります。タブの 1 つを選択し、[編集] を選択します。タブ変更リスナーを呼び出して学生オブジェクトを取得し、それを編集しようとするとうまくいきます。

しかし、私の問題は、タブで選択して編集をクリックしても、アコーディオンが初めてロードされたときに、学生オブジェクトが取得されないことです。nullポインター例外が発生します。タブの変更イベントは、初めて読み込まれるときに呼び出されないためです。これを解決するにはどうすればよいですか?

private StudBean formBean;

    public StudBean  getFormBean() {
        if(formBean==null){
            formBean= new StudBean();
        }

        return formBean;
    }

    public void onTabChange(TabChangeEvent event) {
        formBean = (StudBean) event.getData();
    }


public String edit(){


            formBean = testDelegate.getDetails(formBean.getName(),formBean.getId());


        return "/ui/EditStudent?faces-redirect=true";
    }




<p:commandButton process="@this" value="edit"  action="#{testBean.edit}" >

    <p:accordionPanel  value="#{testBean.students}" var="stud">  
                  <p:ajax event="tabChange"  listener="#{testBean.onTabChange}" immediate="true"/>
                  <p:tab title="#{stud.name}">  
4

0 に答える 0