我有一个手风琴面板,其中包含学生姓名的标签。我在其中一个选项卡上选择并选择编辑。我正在调用选项卡更改侦听器并获取学生对象并尝试对其进行编辑工作正常。
但是我的问题是第一次加载 Accordion 时,即使我在选项卡上选择并单击编辑,我也不会得到学生对象。它给了我空指针异常。因为选项卡更改事件在第一次加载时不会被调用。我该如何解决这个问题?
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}">