Spring:如何解决验证错误 -> 错误代码 -> 错误消息

2023-12-24

在 Spring 中,验证后我们得到一个BindingResult对象在controller.

很简单,如果我收到验证错误,我想重新显示我的表单,并在每个受影响的字段上方显示错误消息。

因此要检查字段上的字段错误username of my FormObject I call:

FieldError usernameFieldError = bindingResult.getFieldError("username");

太好了,现在我持有FieldError对象,假设我正在使用DefaultMessageCodeResolver现在包含 4 个可能的错误代码。

我如何从FieldError-> 用户可以使用的字符串?

我有一个MessageSource在我的 Web 应用程序上下文中定义,因此我可以将单个错误代码映射到消息。

但有时默认消息是最好的,有时我希望其中两个错误代码可能有相关消息,因此我们需要选择最好的一个。

我用什么方法来确定best可能会出现字段错误的错误消息?

  • 我是否需要编写一些算法来遍历所有错误代码并从最具体的错误代码中进行选择?
  • spring 是否提供任何支持来帮助确定最具体的错误消息?
  • 整个过程看起来又长又复杂,我以为 spring 应该让这件事变得简单。也许我完全偏离了基地?

正如你所猜测的,你让自己变得比需要的更加困难。这FieldError对象本身就是一个MessageSourceResolvable。您不需要从中获取代码,然后手动将各个代码带到您的消息源并继续查找。您可以将其传递给您的MessageSource它会找到在您的语言环境中定义了翻译的最具体的翻译。 (假设您的代码解析器以正确的顺序放置它们。)

但在大多数情况下,您实际上甚至不需要这样做。把Errors通常不需要在您的支持对象上翻译它们。这formjsp 库中的命名空间提供了一个标记,可以为您查找错误消息。您需要做的就是将Errors in the ModelMap。请参阅文档:

http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/view.html#view-jsp-formtaglib-errorstag http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/view.html#view-jsp-formtaglib-errorstag

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Spring:如何解决验证错误 -> 错误代码 -> 错误消息 的相关文章

  • 在java代码中创建postgresql表

    我有一个与 postgreSQL 数据库连接的 java 代码 现在 我希望当它连接到数据库时 我还将创建数据库表 但我的问题是 它不会创建数据库 我不知道问题是什么 这是我的代码 Statement st null ResultSet r
  • 如何重复一段文本中的每个字母?爪哇语

    就像在口吃中一样 如果文本为 dean 并且乘数为 3 则结果将是 dddeeeaaannn 由提供的乘数指定的次数 public static void repeatLetters String text dean int n 3 Str
  • Java 错误和警告列表

    在哪里 如何获得所有 java 和 javac 的错误和警告消息的列表 This http mindprod com jgloss compileerrormessages html我认为页面是您所需要的
  • java中高效的输入流到字符串方法

    因此 我在 Java 中的 诚然非常简单 应用程序上运行探查器 令我惊讶的是 仅次于需要在时间上发出 HTTP 请求的方法的是我的方法 inputStreamToString方法 目前它的定义如下 public static String
  • Android Studio 与 Google Play 服务的编译问题

    我正在运行 Android Studio 0 8 4 并在 Android Studio 0 8 2 上尝试过此操作 我正在运行 Java JDK 1 8 0 11 并尝试使用 JDK 1 8 0 05 每当我尝试构建我的 android
  • Android 信号 11 (SIGSEGV),代码 1 (SEGV_MAPERR) libwebviewchromium.so

    对于 android 4 4 我多次收到 Native crash at system lib libwebviewchromium so 错误 以下是设备包括 Xperia Z1 SO 01F 16 30 2 Galaxy Tab4 7
  • 清空变量不会使方法引用无效[重复]

    这个问题在这里已经有答案了 为什么代码不抛出NullPointerException当我使用与变量绑定的方法引用时dog我后来分配了null to 我正在使用 Java 8 import java util function Functio
  • 传递自定义类型查询参数

    如何接受自定义类型查询参数 public String detail QueryParam request final MYRequest request 上面的行在启动服务器时出现错误 jersey server model ModelV
  • 用于制作代码编辑器的 JavaFX 相当于 JSyntaxPane 的什么?

    以前在 Swing 中 我使用过JSyntaxPane用于制作一个小型 Java 源代码编辑器 为了练习 我决定用 JavaFX 重做整个项目并添加对更多语言的支持 最好是尽可能多 不过好像没有什么类似的JSyntaxPane 一些研究让我
  • Spring 从 JBoss 上下文加载 PropertySourcesPlaceholderConfigurer

    我有一个使用 PropertySourcesPlaceholderConfigurer 的 spring 3 1 应用程序加载设置 我想管理测试和生产环境 只需从服务器上下文加载设置覆盖本地文件属性中指定的设置 下一个示例在 Tomcat
  • 使用正则表达式验证电子邮件的最大长度

    我找到了用于电子邮件验证的正则表达式 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4 我希望电子邮件的最大长度为 20 个字符 因此我将其更改为 a z0 9 a z0 9 a z0 9 a z0 9 a z 2 4
  • 是否可以创建 Java RAM 磁盘以与 java.io.* API 一起使用?

    我正在使用一个第三方库 它基本上创建一个输出目录 其中包含不同类型的文件和子目录 我希望能够编写单元测试来确认输出正确 我希望能够将库与 RAM 磁盘一起使用 这样库所做的任何事情都不会以任何方式接触实际的磁盘板 这个想法是让测试运行和清理
  • java彩色滚动条搜索结果

    我将如何在 Java 中自定义滚动条 以便我可以进行像 chrome 一样的搜索 也就是说在结果所在的位置放置彩色条纹 我不想要一个库 因为我更喜欢自己编写代码 另外 我不想失去我拥有的 L F 欢迎举例 实际上 它将查看一个大的文本文件或
  • java.exe 以非零退出值 1 结束

    只是为了开始 我并不是真正尝试从 Android 中的 xlsx 文件中读取单元格 我已经尝试了几乎所有我在 Google 上搜索到的内容 但是每次 在两台不同的 PC 上 都是 Java 1 7 0 79 当我尝试构建 运行 这个应用程序
  • 为休息服务实施 JUnit 测试

    我必须为我的休息服务实现一些 JUnit 测试 例如 这是我的休息服务之一 Path dni fe public class HelloWorld POST Path home Consumes MediaType APPLICATION
  • 如何在 JASPIC 中保存经过身份验证的用户?

    我开发了一个安全认证模块 SAM 并实现了validateRequest方法 我还有一个简单的 Web 应用程序配置为使用此 SAM In my validateRequest方法 我检查 clientSubject 并设置一个Caller
  • Hybris:如何在impex中导入zip文件中的媒体?

    我知道我们可以导入未像这样压缩的图像 siteResource jar com project initialdata constants ProjectInitialDataConstants projectinitialdata imp
  • 如何在一次操作中使用 Thymeleaf 检查 null 和空条件?

    有什么方法可以检查 Thymeleaf 中的 null 和empty 条件吗 方法一 1 variable1 variable2 variable3 2 variable null 3 variable 如果我们结合两个条件 例如 vari
  • 在 Tensorflow-lite Android 中将位图转换为 ByteBuffer(浮点)

    在用于图像分类的tensorflow lite android演示代码中 图像首先转换为ByteBuffer格式以获得更好的性能 这种从位图到浮点格式的转换以及随后到字节缓冲区的转换似乎是一个昂贵的操作 循环 按位运算符 float mem
  • 用于生成 ISO 文件的 Maven 插件

    有没有可以生成ISO镜像的maven插件 我需要获取一些模块的输出 主要是包含 jar 的 zip 文件 并将它们组合成一个 ISO 映像 Thanks 现在有一个 ISO9660 maven 插件可以完成这项工作 https github

随机推荐

  • GitLab CI 缓存密钥

    假设我有以下步骤 gitlab ci yml file setup vue image stage setup script cd vue npm install no audit cache key node cache paths vu
  • python 3 中缺少 argparse

    有人知道为什么 argparse 模块没有在 python 3 中出现吗 它是 python 2 7 中的新功能 但 2 x 分支在 2 7 中已经耗尽 对我来说 不在实际的 python 3 分支中支持它是没有意义的 它将出现在 Pyth
  • 知道何时在序言中使用剪切

    我参加了一门课程 在其中学习了一些序言 我不知道如何 何时使用剪切 尽管我了解了剪切的一般概念 但我似乎无法正确使用它们 任何人都可以简要解释一下或提供一个关于他们可以推荐的 剪辑 的好教程 不是 learnprolognow org 吗
  • 使用 php mysqli 检查电子邮件是否存在[重复]

    这个问题在这里已经有答案了 我是 mysqli 的新手 我想用 php 和 mysqli 检查数据库中是否已存在电子邮件 这是我到目前为止所做的 ini php 连接 php 注册 php
  • 如何在 C# 中播放提取的波形文件字节数组?

    目前 我已成功分离 WAVE 文件的左声道和右声道 并将标题包含在 byte 数组中 我的下一步是要播放两个频道 如何才能做到这一点 这是一个代码片段 byte song left new byte fa Length byte song
  • QuickType 预测会考虑应该被我的 UITextFieldDelegate 阻止的击键

    我有一个文本字段 我不想在其中允许前导空格 所以我实施了textField textField shouldChangeCharactersInRange replacementString 并阻止将文本更改为以空格开头的内容的尝试 这按预
  • CodeIgniter 2 不允许控制器存在多级子文件夹

    当我读到doc http ellislab com codeigniter user guide general controllers html CodeIgniter 中的控制器应该支持多级子文件夹 但据我测试 在第一个一级文件夹之后是
  • 为什么 -0.0 与 0.0 不同?

    I could be missing something fundamental but consider this interpreter session1 gt gt gt 0 0 is 0 0 False gt gt gt 0 0 i
  • 让 python 程序等待 Twisted deferred 返回值

    我有一个程序可以从其他页面获取信息并使用 BeautifulSoup 和 Twisted 的 getPage 来解析它们 稍后在程序中我打印延迟进程创建的信息 目前 我的程序尝试在不同的返回信息之前打印它 我怎样才能让它等待 def twi
  • 有人在 Matplotlib 中制作了 Parula 颜色图吗?

    我知道有一些关于 Matlab 对其新的默认颜色图进行版权保护的讨论 http sourceforge net p matplotlib mailman message 32953371 但我想知道是否有勇敢的用户在 Matplotlib
  • 如何根据对应的值过滤字典键

    I have dictionary foo 12 bar 2 jim 4 bob 17 我想迭代这个字典 但迭代的是值而不是键 这样我就可以在另一个函数中使用这些值 例如 我想测试哪些字典值大于6 然后将它们的密钥存储在列表中 我的代码如下
  • ConfigObj/ConfigParser 与使用 YAML 作为 Python 设置文件

    对于为Python程序创建设置文件 内置模块 ConfigParser 或独立项目 ConfigObj 还是使用YAML数据序列化格式 哪个更好 我听说 ConfigObj 比 ConfigParser 更容易使用 尽管它不是内置库 我还了
  • ASP.NET MVC 2 验证应该去哪里:模型还是视图模型类?

    我正在使用自动映射器将我的模型映射到视图模型类以传递到我的视图 我的问题实际上是验证应该去哪里 我计划使用元数据装饰 mvc 2 的一个功能 但无论是在模型中还是在视图模型中 还是两个地方都有 验证应该至少在视图模型中完成 因为这是您作为操
  • 在 WPF 中单击按钮时使用不同内容更新列表框

    所以我的 WPF 应用程序中有一个列表框和一个工具栏 工具栏只有常规控件 列表框有垂直扩展器 我需要列表框有一组不同的扩展器 具体取决于单击的按钮 现在看起来是这样的
  • 一个简单的游戏的代码如何布局? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我的背景主要是开发网站 也许还有一些简单的基于表单的应用程序 MVC 对此很有效 但我不太明白它如何适用于游戏 那么你们是怎么做到的呢
  • 如何以编程方式关闭系统对话框,例如“想要访问您的照片”?

    有没有一种方法可以以编程方式关闭对话框 例如应用程序想要访问照片 访问联系人和访问位置的对话框 我认为有一种方法可以通过调整 API 方法来实现 但我真的不知道是哪一种 找出哪些方法需要调整的方法是什么 如果 swizzling 不是方法
  • Spring Boot WebSocket - 如何获取客户端订阅通知

    我有一个包含大量组的应用程序 其中我的服务器使用消息队列 RabbitMQ 来观察组并在通过 WebSocket 进行更改时向用户发布通知 我正在使用 Spring boot 及其受本指南启发的 WebSocket 实现 https spr
  • 使用 Django 生成 CSV 文件(动态内容)

    在我的 view py 中 我有两个函数 一个函数处理来自表单的输入并输出过滤后的列表 另一个函数应该将此列表导出到 CSV 这是我的第一个函数的返回 return render to response templateX html que
  • Node.js / Express 响应事件

    我正在尝试创建一个记录响应时间和状态代码并将其发送到数据库的中间件 但是 我不确定要使用什么事件 在节点的文档中有一个close事件 但它从未被触发 end也不行 然而 header确实如此 但我找不到任何文档 app use functi
  • Spring:如何解决验证错误 -> 错误代码 -> 错误消息

    在 Spring 中 验证后我们得到一个BindingResult对象在controller 很简单 如果我收到验证错误 我想重新显示我的表单 并在每个受影响的字段上方显示错误消息 因此要检查字段上的字段错误username of my F