0

BeanValidationについて学んでいます。バッキングBeanを介してモデル(ユーザー)プロパティのユーザー名とパスワードにバインドされるユーザー名とパスワードの入力フィールドを使用して、単純なフォームを作成しました。私はそれらに注釈を付けました:

@Id
@NotNull(message="Username cannot be empty")
private String username;
@NotNull(message="Password cannot be empty")
private String password;

今、私が<h:messages/>中に入れたそのフォームのページに<h:form>...</h:form>。空のフォームを送信すると、同じページにリダイレクトされます(バッキングBeanのアクションメソッドでnullが返されます)が、メッセージが表示されません。私は何が間違っているのですか?

4

2 に答える 2

1

@NotNull解決策は、を使用する代わりに、@Size空の入力フィールドは実際には空の文字列であり、ではないため、を使用することnullです。

于 2010-09-17T16:28:11.637 に答える
1

作業を開始したい場合は@NotNull、JSFに空の文字列をとして設定させる必要がありますnull。JSF 2.0では、次のコンテキストパラメータをweb.xml:に追加することでこれを行うことができます。

<context-param>
    <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
    <param-value>true</param-value>
</context-param>

それがトリガーになるかどうかは経験からはわかりません@NotNullが、理論的にはそうなるはずです。試してみる。

于 2010-09-17T18:46:37.843 に答える