Я пытаюсь выполнить операцию вставки в таблицу. Я показываю существующие записи в таблице данных, а подробности отображаются в PanelGrid под таблицей данных при выборе каждой строки. PanelGrid с пустым полем inputText отображаются, когда пользователь нажимает кнопку NEW. Пользователь отправляет новую запись, и dataTable обновляется.
При отправке получаю ошибку:
22 ноября 2011 г. 17:02:22 com.sun.faces.lifecycle.ProcessValidationsPhase выполнить ПРЕДУПРЕЖДЕНИЕ: ошибка аргумента: параметр targetClass имеет значение null java.lang.NullPointerException: ошибка аргумента: параметр targetClass имеет значение null
Код приведен ниже:
<p:outputPanel header="MyTable Records" rendered="true" id="panel_MyTable">
<p:dataTable id="table_MyTable" value="#{myBean.records}" var="dataMyTable" onRowSelectUpdate="details_MyTable" selection="#{myBean.currentRec}" update="submitButton">
<p:column>
<f:facet name="header">
<h:outputLabel value="Label 1" />
</f:facet>
<h:outputLabel value="#{dataMyTable.Field1}"/>
</p:column>
<p:column>
<f:facet name="header">
<h:outputLabel value="Label 2" />
</f:facet>
<h:outputLabel value="#{dataMyTable.Field2}"/>
</p:column>
<f:facet name="footer">
<p:commandButton value="New" image="ui-icon ui-icon-add" actionListener="#{myBean.prepareForInsertAction}" update="details_myTable,submitButton" />
</f:facet>
</p:dataTable>
</p:outputPanel>
<h:panelGrid id="details_MyTable">
<h:outputLabel value="Label 1"/>
<p:inputText readonly="#{myBean.editMode ? false : true}" value="#{myBean.editMode ? myBean.newRec.Field1 : myBean.currentRec.Field1}" />
<h:outputLabel value="Label 2"/>
<p:inputText readonly="#{myBean.editMode ? false : true}" value="#{myBean.editMode ? myBean.newRec.Field2 : myBean.currentRec.Field2}" />
</h:panelGrid>
<p:commandButton id="submitButton" actionListener="#{myBean.createAction}" value="Submit" update="table_MyTable,details_MyTable" rendered="#{myBean.editMode ? true : false}"/>
@ManagedBean(name="myBean")
@ViewScoped
public class MyBean
{
public static List<MYTABLE> records;
MYTABLE currentRec;
Boolean editMode=false;
public MyBean(){
records = MYTABLE_CRUD.getAllRecs();
currentRec = new MYTABLE();
}
public void prepareForInsertAction(){
newRec = new MYTABLE();
editMode = true;
}
public void setCurrentRec(MYTABLE v_currentRec) {
this.currentRec = v_currentRec;
editMode = false;
}
}