簡體   English   中英

如何通過注釋限制用戶在Integer字段中輸入數字?

[英]How to restrict a user to enter numerics in a Integer field with help of annotations?

我需要限制用戶在jsp字段中輸入數字值,如果失敗,它應該給出相關消息。這是我當前的聲明:

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

我需要知道我還需要添加更多注釋,以在不更改字段數據類型的情況下獲得所需的結果。

過冬

@Range-檢查值是否在最小值和最大值之間

    @Range(min=1, max=1000)

@Pattern-檢查屬性是否與給定匹配標志@Pattern(regex =“ regexp”,flag =)或@Patterns({@Pattern(...)})的正則表達式匹配

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

彈簧

@RegExp-檢查屬性是否與給定匹配標志的正則表達式匹配

     @RegExp("[0-9]+")   

這不是在驗證級別上要做的事情。

當您在表單中輸入內容並提交表單時,瀏覽器將發送一個HTTP請求,其中您的<input>字段已序列化並作為請求參數發送。 然后,Spring會根據bean字段的數據類型,嘗試將String請求參數值轉換為Long類型。 如果因為String不是Long而不能這樣做,它將拋出異常( NumberFormatException )並以400錯誤代碼響應。

您可以在(HTML5)客戶端上使用

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

或使用

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

如果您不希望使用十進制數字。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM