Gio*_*nJh 4 java spring default custom-errors
在Spring中,如何覆盖默认的表单错误按摩?
我正在使用a Validator和属性文件来添加我自己的错误消息,但是如何覆盖在转换/编码错误时打印的消息?
它们似乎是自动生成的,我认为对用户没有帮助:
Failed to convert property value of type java.lang.String to required type java.lang.Double for property minPrice; nested exception is java.lang.NumberFormatException:
Run Code Online (Sandbox Code Playgroud)
您可以通过在本地化软件包中创建自定义消息来覆盖默认值,其中的密钥遵循Spring定义的约定DefaultMessageCodeResolver.为了完整起见,这里是其文档的相关部分:
将按以下顺序(使用带前缀的格式化程序时)为对象错误创建两个消息代码:
Run Code Online (Sandbox Code Playgroud)1.: code + "." + object name 2.: code将按以下顺序为字段规范创建四个消息代码:
Run Code Online (Sandbox Code Playgroud)1.: code + "." + object name + "." + field 2.: code + "." + field 3.: code + "." + field type 4.: code例如,在代码"typeMismatch"的情况下,对象名称"user",字段"age":
Run Code Online (Sandbox Code Playgroud)1. try "typeMismatch.user.age" 2. try "typeMismatch.age" 3. try "typeMismatch.int" 4. try "typeMismatch"因此,可以利用该解析算法来显示诸如"required"和"typeMismatch"之类的绑定错误的特定消息:
Run Code Online (Sandbox Code Playgroud)at the object + field level ("age" field, but only on "user"); at the field level (all "age" fields, no matter which object name); or at the general level (all fields, on any object).对于数组,列表或映射属性,将生成特定元素和整个集合的代码.假设对象"user"中数组"groups"的字段"name":
Run Code Online (Sandbox Code Playgroud)1. try "typeMismatch.user.groups[0].name" 2. try "typeMismatch.user.groups.name" 3. try "typeMismatch.groups[0].name" 4. try "typeMismatch.groups.name" 5. try "typeMismatch.name" 6. try "typeMismatch.java.lang.String" 7. try "typeMismatch"默认情况下,errorCodes将放置在构造的消息字符串的开头.messageCodeFormatter属性可用于指定备用串联格式.
为了将所有代码分组到资源包中的特定类别,例如"validation.typeMismatch.name"而不是默认的"typeMismatch.name",请考虑指定要应用的前缀.
| 归档时间: |
|
| 查看次数: |
2179 次 |
| 最近记录: |