Я пытаюсь создать форму для редактирования объекта сущности при выборе из таблицы данных. Поэтому, когда пользователь щелкает commandButton в datatable, свойство myBean.person
заполняется соответствующим объектом person. Человек имеет свойство "статус".
Я хотел бы проверить форму редактирования с различными группами проверки в соответствии со значением свойства "status". Возможно ли это?
Я создал две разные группы проверки:
@Entity
public class Person{
private String status;
...
@NotNull(message = "{person.null.name}", groups = PersonNew.class)
private String name;
@NotNull(message = "{person.null.code}", groups = PersonActive.class)
private String code;
}
Я бы хотел проверить форму перед сохранением, а когда статус «новый», тогда необходимо установить свойство name
. Когда статус «активен», тогда должно быть установлено свойство code
.
У меня есть страница jsf:
<h:form id="personEdit">
<h:inputText value="#{myBean.person.name}" />
<h:inputText value="#{myBean.person.code}" />
... other fields for other properties ...
<h:commandButton value="Save" action="#{myBean.save}" />
</h:form>
Я пытался использовать тег <f:validateBean />
с динамически установленным атрибутом validationGroups, но метод, который возвратил validationGroups, был вызван до того, как был получен реальный объект person. Так что я не мог решить в соответствии с Person.status
свойство.
Так можно ли определить PersonNew
как группу проверки, если человек имеет статус "новый", в противном случае определить PersonActive
как группу проверки?
Спасибо за любую помощь.