Эти value
атрибуты неверны:
<p:inputText readonly="#{myBean.editMode ? false : true}" value="#{myBean.editMode ? myBean.newRec.Field1 : myBean.currentRec.Field1}" />
<p:inputText readonly="#{myBean.editMode ? false : true}" value="#{myBean.editMode ? myBean.newRec.Field2 : myBean.currentRec.Field2}" />
Эти значения могут быть получены, но новые значения не могут быть установлены.Будет работать следующий синтаксис:
<p:inputText readonly="#{!myBean.editMode}" value="#{myBean[myBean.editMode ? 'newRec' : 'currentRec'].Field1}" />
<p:inputText readonly="#{!myBean.editMode}" value="#{myBean[myBean.editMode ? 'newRec' : 'currentRec'].Field2}" />
(обратите внимание, что я также улучшил оценку атрибута readonly
)
Но гораздо лучше использовать только один иодно и то же свойство для обоих режимов редактирования и используйте значение режима редактирования в методе действия, чтобы определить, как с ним работать:
<p:inputText readonly="#{!myBean.editMode}" value="#{myBean.rec.Field1}" />
<p:inputText readonly="#{!myBean.editMode}" value="#{myBean.rec.Field2}" />
, например,
private Record rec;
public void save() {
if (editMode) {
// Treat "rec" as "currentRec".
} else {
// Treat "rec" as "newRec".
}
}