当前位置: 首页 > 知识库问答 >
问题:

使用javax.validation的复杂Spring表单验证

荀裕
2023-03-14

我想要实现的是:

验证bean支持的表单,例如使用以下类

public class PersonForm {

    @NotNull
    String name;

    List<Long> interests;

    // This attribute is not filled out in the form
    List<Interest> realInterests;
}

所以,“名字”和“兴趣”来自网络表单。“name”有一些约束(NotNull),使用@Valid可以完成它应该做的事情。

“兴趣”是兴趣ID的列表。

在对“名称”进行初始验证后,我填写列表集合。

@CustomValidInterest
public class Interest {

    Long id;
    String name;
    boolean available;

}

之后我想验证这个结构。“@CustomValidInterest”是一个自定义验证注释。我可以使用验证组进行两阶段验证。

问题是,如果某个“兴趣”对象无效,我想将错误消息与“兴趣”字段(列表)关联

也许我用错了验证方法。我试图避免进行大量程序性比较,手动填充错误。

共有1个答案

陆翔飞
2023-03-14

回答我自己的问题,这可以通过使用PropertyEditor实现。表单可能会返回一个列表

 类似资料:
  • 问题内容: 有没有一种方法可以使用javax.validation来验证类型为color的字符串类型的变量,该变量只需要使用注释就具​​有这些值(红色,蓝色,绿色,粉红色)? 我见过 ,但是有这样的事情吗 或多或少类似于在使用 问题答案: 在那种情况下,我认为使用@Pattern注释会更简单,如下面的代码片段所示。如果需要不区分大小写的评估,只需添加适当的标志:

  • 我正在实现一个带有表单验证的示例Spring MVC表单。我有一个复杂类型作为表单bean的bean属性。并且我为bean属性添加了表单验证。但在UI中并没有体现出同样的情况。但是表单验证也适用于表单bean的其他基元类型。 因此,验证对于表单bean非常有效,但对于嵌套的复杂类型(如表单bean中的)则不适用。 我正在试着了解原因和解决办法。 Spring版本4.0+。Hibernate验证器A

  • 我正在使用spring-mvc和Thymeleaf开发一个内部工具。 这个工具的一部分用于创建我们保存在数据库中的实体。这个实体相当复杂;它包含许多性质和关系。其中一些关系包含列表和其他属性。 我有两个限制: null 使用Thymeleaf呈现基本页面。使用JavaScript创建html元素,而不是提交到@ModelAttribute,我将表单序列化到JSON并将此JSON提交到服务器。(客户

  • 我在验证xml文件时遇到问题。在我的xml文件中,xsi:schemaLocation=“”指向xsd文件。不幸的是,这个xsd文件加载了模式依赖项。他们都指向一些网站。因此,验证失败。所有工具和库都失败,外汇xmlspy。当我指向xml文件中的xsi:schemalocation=“”本地xsd(所有依赖项都是本地的)时,验证工作很好。 我的问题与javax.xml.validation有关,我

  • 我在管理两个JTable和相关数据方面有一些问题。 我解释了用途:在第一个jTable中,我有一个车辆列表(卡车,汽车......)和相关信息。在第二个jTable中,我有一个我想要“可用”的车辆列表(即sw代理启动),只需按绿色箭头即可。因此,是第一个列表的子列表:在第一个表中选择的行将复制到第二个表中。 第一个问题:在第一列中,我有一个关于车辆类型的解释性图像(你可以在示例中看到一辆卡车)。在

  • 在spring mvc中,当用户在输入字段中输入空白时,如何显示自定义消息或删除jsp形式的整数字段输入,并使用hibernate验证器进行验证?它目前显示: 未能将java.lang.String类型的属性值转换为属性FreePass所需的int类型;嵌套异常是java.lang.NumberFormatException:对于输入字符串:“