SpringBoot项目(24)—服务器数据校验之自定义错误提示信息
方式一:直接在注解里定义提示信息
通过注解的message来设置提示信息,提示信息以自己定义的为主,不再用默认的提示信息了
@NotNull(message = "用户ID不能为空")
private Integer userid;
@NotBlank(message = "用户姓名不能为空")
private String username;
@NotBlank(message = "用户性别不能为空")
private String usersex;
- 1
- 2
- 3
- 4
- 5
- 6
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-z1aX2MFO-1591058335731)(E:\李小兔的Java总结\(24)-运行结果一.png)]
缺点:硬编码,一旦提示信息改变就需要修改代码里的信息
方式二:在配置文件中定义配置信息
在/resources目录下新建配置文件,配置文件名必须为
格式为 key = value
= 用户ID不能为空
= 用户姓名不能为空
= 用户性别不能为空
- 1
- 2
- 3
修改实体类:
在message里用{}表示去文件中根据key去取value,这里没有$符号
@NotNull(message = "{}")
private Integer userid;
@NotBlank(message = "{}")
private String username;
@NotBlank(message = "{}")
private String usersex;
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-CJw79NdF-1591058335733)(E:\李小兔的Java总结\(24)-运行结果二.png)]
会发现是乱码??这是因为.properties文件中采用的是iso编码格式,这种编码格式是不支持汉字的,所以要把提示信息中的中文转换为Unicode编码
通过在cmd窗口里找到jdk的安装目录,进入bin目录,直接在cmd里运行文件,然后在cmd里输入需要转换的中文,回车就得到对应的acsii编码
把编码复制到项目里的文件中
= \u7528\u6237id\u4e0d\u80fd\u4e3a\u7a7a
= \u7528\u6237name\u4e0d\u80fd\u4e3a\u7a7a
= \u7528\u6237sex\u4e0d\u80fd\u4e3a\u7a7a
- 1
- 2
- 3
运行结果:
notnull = \u7528\u6237sex\u4e0d\u80fd\u4e3a\u7a7a
运行结果:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ruFMlwNs-1591058335734)(E:\李小兔的Java总结\(24)-运行结果)]
- 1
- 2
- 3
- 4