データテーブルから選択したエンティティ オブジェクトを編集するためのフォームを作成しようとしています。したがって、ユーザーがデータテーブルで commandButton をクリックすると、myBean.person
プロパティに適切な人物オブジェクトが入力されます。人は「ステータス」プロパティを持っています。
「ステータス」プロパティの値に応じて、さまざまな検証グループで編集フォームを検証したいと思います。これは可能ですか?
2 つの異なる検証グループを作成しました。
@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>
動的に設定された validationGroups 属性を持つタグを使用しようとしまし<f:validateBean />
たが、実際の人物オブジェクトが取得される前に、validationGroups を返すメソッドが呼び出されました。Person.status
そのため、物件によっては判断できませんでした。
PersonNew
ステータスが「新規」の場合は検証グループとして定義し、それ以外の場合は検証グループとして定義できますPersonActive
か?
助けてくれてありがとう。