Spring @来自数据库的数据的有效和绑定结果
我在其中一个web应用程序中使用Spring验证(JSR 303)。当用户提交数据时,我没有任何问题,Spring验证工作非常顺利。但我有一个场景,我必须从服务中获取数据并进行验证,然后将其绑定到我的视图。(某种非表单验证).在这种情况下,我如何使用@Valid,还是必须以不同的方式使用 这是一个示例代码,我从Spring @来自数据库的数据的有效和绑定结果,spring,spring-mvc,Spring,Spring Mvc,我在其中一个web应用程序中使用Spring验证(JSR 303)。当用户提交数据时,我没有任何问题,Spring验证工作非常顺利。但我有一个场景,我必须从服务中获取数据并进行验证,然后将其绑定到我的视图。(某种非表单验证).在这种情况下,我如何使用@Valid,还是必须以不同的方式使用 这是一个示例代码,我从 @RequestMapping(value = "/{id}", method = RequestMethod.GET) public ModelAndView getView(
@RequestMapping(value = "/{id}", method = RequestMethod.GET)
public ModelAndView getView(
@PathVariable("id") final String id, @User user,
HttpSession session) {
User user= getUser();
BindingResult result = new BeanPropertyBindingResult(user, "user");
validator.validate(user, result);
if(result.hasErrors()){
logger.log(Level.ERROR, "Errors");
}
ModelAndView view = new ModelAndView ("home");
view.addObject("user",user );
view.addAllObject(result.getModel());
return view;
据我所知,您需要将default
org.springframework.validation.Validator
注入控制器(如果@Valid
有效,您应该可以这样做)
按如下方式手动运行验证
User user = ...;
BindingResult result = BeanPropertyBindingResult(user, "user");
validator.validate(user, result);
model.addAllAttributes(result.getModel());
并将结果合并到ModelMap
(将其声明为方法的参数),如下所示
User user = ...;
BindingResult result = BeanPropertyBindingResult(user, "user");
validator.validate(user, result);
model.addAllAttributes(result.getModel());
据我所知,您需要将default
org.springframework.validation.Validator
注入控制器(如果@Valid
有效,您应该可以这样做)
按如下方式手动运行验证
User user = ...;
BindingResult result = BeanPropertyBindingResult(user, "user");
validator.validate(user, result);
model.addAllAttributes(result.getModel());
并将结果合并到ModelMap
(将其声明为方法的参数),如下所示
User user = ...;
BindingResult result = BeanPropertyBindingResult(user, "user");
validator.validate(user, result);
model.addAllAttributes(result.getModel());
谢谢你提供的路径。我已经更新了我的帖子以包含我的更改。处理程序处理失败;嵌套的异常是java.lang.NoSuchFieldError:org/apache/log4j/Level.TRACE。我检查了我的maven依赖项,并且对所有Spring JAR(3.1.0)使用了相同的版本。不确定这个错误。是否将log4j作为依赖项之一?v1.2.x或更高版本?抱歉,我应该在这里更新我的进度。是的,我的maven中有slf4j和log4j。我必须让后者离开。现在,我可以从我的验证器中看到错误,我已经将bindingresult设置为我的modelAndView,但是错误没有反映在jsp中,我已经用代码更新了initail帖子。我传递了“错误”变量,并在我的jsp中使用user。这导致错误未在我的视图中绑定。我已更新我的帖子。希望这有帮助。感谢路径。我已更新我的帖子以包含我的更改。处理程序处理失败;嵌套的异常是java.lang.NoSuchFieldError:org/apache/log4j/Level.TRACE。我检查了我的maven依赖项,并且对所有Spring JAR(3.1.0)使用了相同的版本。不确定这个错误。是否将log4j作为依赖项之一?v1.2.x或更高版本?抱歉,我应该在这里更新我的进度。是的,我的maven中有slf4j和log4j。我必须让后者离开。现在,我可以从我的验证器中看到错误,我已经将bindingresult设置为我的modelAndView,但是错误没有反映在jsp中,我已经用代码更新了initail帖子。我传递了“错误”变量,并在我的jsp中使用user。这导致错误未在我的视图中绑定。我已更新了我的帖子。希望这有帮助。