我需要限制用户在 jsp 字段中输入数值。失败时它应该给出相关消息。这是我目前的声明:
@NotNull
@Column(value="userId")
private Long userId;
我需要知道我还需要添加哪些注释,才能在不更改字段数据类型的情况下获得我想要的结果。
我需要限制用户在 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 不是 a 而不能这样做Long
,它将抛出异常 ( NumberFormatException
) 并以 400 错误代码响应。
您可以在(HTML5)客户端验证这一点
<input name="userId" type="number">
或使用
<input type="text" pattern="\d*" />
如果你不想要十进制数字。