3

ユーザーがjspフィールドに数値を入力するのを制限する必要があります.失敗すると、関連するメッセージが表示されます.これは私の現在の宣言です:

@NotNull  
@Column(value="userId")  
private Long userId; 

フィールドのデータ型を変更せずに目的の結果を得るには、追加する必要がある注釈を知る必要があります。

4

2 に答える 2

4

休止状態

@Range - 値が最小値と最大値の間にあるかどうかを確認します

    @Range(min=1, max=1000)

@Pattern - 一致フラグ @Pattern(regex="regexp", flag=) または @Patterns( {@Pattern(...)} ) を指定して、プロパティが正規表現と一致するかどうかを確認します。

    @Pattern(regex = "[0-9]+")

@RegExp - 一致フラグを指定して、プロパティが正規表現と一致するかどうかを確認します

     @RegExp("[0-9]+")   
于 2013-09-17T15:19:47.747 に答える
1

これは、検証レベルで行われるものではありません。

フォームに何かを入力してそのフォームを送信すると、ブラウザは、<input>フィールドをシリアル化してリクエスト パラメータとして送信する HTTP リクエストを送信します。次に、Spring は、Bean のフィールドのデータ型に基づいて、Stringリクエスト パラメータ値からLong型への変換を試みます。String が ではないためにそれができない場合は、Long例外 ( ) をスローNumberFormatExceptionし、400 エラー コードで応答します。

(HTML5)クライアント側でこれを検証できます

<input name="userId" type="number">

または使用

<input type="text" pattern="\d*" />

10進数が必要ない場合。

于 2013-09-17T15:06:17.093 に答える