Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在validation-text.properties文件中使用通配符?_Java_Spring_Validation_Spring Mvc - Fatal编程技术网

Java 如何在validation-text.properties文件中使用通配符?

Java 如何在validation-text.properties文件中使用通配符?,java,spring,validation,spring-mvc,Java,Spring,Validation,Spring Mvc,我很难弄清楚如何让spring在表单绑定期间使用我的自定义错误消息来处理列表中对象字段上的错误 上述问题的更清晰版本是: 我有这样的课: public class Foo { private Long fooId; private Long number; //getters and setters stuff } 然后是一个类栏,有一个Foos的列表: public class Bar { private List<Foo> foos;

我很难弄清楚如何让spring在表单绑定期间使用我的自定义错误消息来处理列表中对象字段上的错误

上述问题的更清晰版本是:

我有这样的课:

public class Foo
{
    private Long fooId;
    private Long number;

    //getters and setters stuff
}
然后是一个类栏,
有一个
Foo
s的列表:

public class Bar
{
    private List<Foo> foos;

    //other stuff
}
但是,因为我有一个
Foo
s的列表,所以该字段实际上是
foos[0]。number
foos[1]。number
,等等

所以很明显,
typeMismatch.bar.foo
不会解决任何问题

我的问题是,如何在validation-text.properties字段中指定类似的内容:

typeMismatch.bar.foos[*].number=Invalid data. ???

通过检查
BindingResult
对象,可以检查可以在validation-text.properties中使用的键。将
BindingResult
作为参数添加到控制器方法中(如果您还没有),然后在发生验证错误时查看result.getFieldError().getCodes()(如果存在任何字段错误,则应包含第一个字段错误的代码)

编辑

我已经试用了您的示例并检查了
BindingResult
中的代码。以下任何代码都应起作用

  • typeMismatch.bar.foos[1]。编号
  • 类型不匹配.bar.foos.number
  • 类型不匹配。foos[1]。编号
  • typeMismatch.foos.number
  • 类型不匹配。编号
  • typeMismatch.java.lang.Long
  • 类型不匹配
所以,要想得到你想要的东西,你只需要在你已经尝试过的东西上加上“s”(这是foos而不是foo):

typeMismatch.bar.foos.number=无效数据。

typeMismatch.bar.foos[*].number=Invalid data. ???