java - Spring javax.validation 注释未在 BindingResult 中捕获

标签 java hibernate spring validation bean-validation

我正在尝试使用 javax.validation 注释向我的模型对象(它兼作我的表单支持 bean)添加验证。

我的模型如下所示:

public Class TestObject {
    private String myProp;
    private InnerObject innerObject;

    //getters and setters omitted
}

public Class InnerObject {
  private BigDecimal myValue;

  @NotNull
  public BigDecimal getMyValue();
}

在我的 Controller 中,我有这样的方法调用:

public View calculate(@ModelAttribute("testObject") @Valid TestObject testObject, BindingResult result)

我还有 <mvc:annotation-driven/>在我的 spring-servlet.xml 文件中。

每次我使用 null 值运行表单时,它都会告诉我有 0 个绑定(bind)结果错误。

我在类路径上使用 Java 1.6 以及 Hibernate-Validator-4.2.0 和 Validation-API-1.0.0。

任何人都可以帮助我并让我知道我做错了什么吗?已经玩了一段时间了,但无法让它工作。

谢谢

最佳答案

您没有引用您的 InnerObject 类。您的 Controller 正在采用 TestObject,但 TestObject 类的字段“innerObject”是 String 类型。

关于java - Spring javax.validation 注释未在 BindingResult 中捕获,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5781200/

相关文章:

java - 从数组列表中删除重复元素

java - Hibernate 多对多不起作用

java - 从外部应用程序调用 portlet 操作

java - Spring Hibernate项目中使用Dozer有什么好处?

java - JTextPane 中文本颜色更改不准确

java - leet Java程序中的非法转义

java - 为每个 XML 子节点动态创建 java 对象?

hibernate - Spring JPA 双向无法评估 toString

hibernate - 使用注释与属性的多对多关系

java - Spring IoC - 确保在 @PostConstruct/afterProperiesSet 之前创建所有 bean