Urgent!有关spring validation的有关问题
Urgent!有关spring validation的问题
您好,我想问有关spring validation的问题,我在网上看到spring validation是对实体前面加@Valid然后后面跟着一个BindingResult result 这样做的.如下
public String login(@Valid User user, BindingResult result) { }
但是我的代码是如下形式的
public String editEntity(HttpServletRequest request) {}
于是我在参数前面加了 @Valid(如下)
@RequestMapping("/editEntity")
public String editEntity(@Valid HttpServletRequest request, BindingResult result) {
if(result.hasErrors()) {
return "forward:/maintenance/error";
}
String entityName = request.getParameter("entityName");
...................
}
,然后运行会报错.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Servlet.service() for servlet springServlet threw exception
java.lang.IllegalStateException: An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments to which they apply: public java.lang.String com.ge.fsc.controller.MaintenanceController.editEntity(javax.servlet.http.HttpServletRequest,org.springframework.validation.BindingResult)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
请问怎么解决这个问题啊?
------解决思路----------------------
@Valid 注解的作用是校验客户端传来的参数能否正确的映射,赋值给你的Bean对象中的属性。
如
class Person{
private int id;
@NotNull
private String name;
}
@RequestMapping("/editEntity")
public String editEntity(@Valid Person person , BindingResult result) {
if(result.hasErrors()) {
return "forward:/maintenance/error";
}
String name = person.getName();
}
而你那样写是不符合@Valid的用法的。
您好,我想问有关spring validation的问题,我在网上看到spring validation是对实体前面加@Valid然后后面跟着一个BindingResult result 这样做的.如下
public String login(@Valid User user, BindingResult result) { }
但是我的代码是如下形式的
public String editEntity(HttpServletRequest request) {}
于是我在参数前面加了 @Valid(如下)
@RequestMapping("/editEntity")
public String editEntity(@Valid HttpServletRequest request, BindingResult result) {
if(result.hasErrors()) {
return "forward:/maintenance/error";
}
String entityName = request.getParameter("entityName");
...................
}
,然后运行会报错.
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Servlet.service() for servlet springServlet threw exception
java.lang.IllegalStateException: An Errors/BindingResult argument is expected to be declared immediately after the model attribute, the @RequestBody or the @RequestPart arguments to which they apply: public java.lang.String com.ge.fsc.controller.MaintenanceController.editEntity(javax.servlet.http.HttpServletRequest,org.springframework.validation.BindingResult)
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
请问怎么解决这个问题啊?
------解决思路----------------------
@Valid 注解的作用是校验客户端传来的参数能否正确的映射,赋值给你的Bean对象中的属性。
如
class Person{
private int id;
@NotNull
private String name;
}
@RequestMapping("/editEntity")
public String editEntity(@Valid Person person , BindingResult result) {
if(result.hasErrors()) {
return "forward:/maintenance/error";
}
String name = person.getName();
}
而你那样写是不符合@Valid的用法的。