`

BindingResult和@ModelAttribute的结合使用

阅读更多

@ModelAttribute

它可以帮你自动绑定表单的值,填充到被注解的属性当中

如 @ModelAttribute User user,该属性会在ModelMap中,添加以user为key的 User对象,然后绑定的时候会有一些绑定结果,就是BindingResult

但是BindingResult跟@ModelAttribute的相对位置比较重要,也就说跟方法参数,方法签名有关系。BindingResult必须紧跟@ModelAttribute的后面!

 

如:
@Controller
public class Payer {
   
   @RequestMapping(...)
   public String pay(@ModelAttribute User user,BindingResult result) {
        
   }
}


如 果是类似下面的情况就可能有"java.lang.IllegalStateException: 

Errors/BindingResult argument declared without preceding model attribute.

 Check your handler method signature!"抛出来,具体可以查看

 org.springframework.web.bind.annotation.support.HandlerMethodInvoker


   @Controller

public class Payer {


 @RequestMapping(...) 

 public String pay(@ModelAttribute User user,@RequestParam Hello hello, 

                   BindingResult result) { 

 }

}

分享到:
评论

相关推荐

    PNC_Lab04:Ingreso产品@Valid @ModelAttribute和BindingResult。 SpringMVC

    总的来说,`@Valid`, `@ModelAttribute`和`BindingResult`是Spring MVC开发中用于数据验证和模型绑定的关键组件。理解它们的工作原理和用法,可以帮助我们构建更加健壮和安全的Web应用程序。在"PNC_Lab04"实验中,你...

    [Spring MVC] - ModelAttribute使用.docx

    public ModelAndView login(@ModelAttribute @Valid Account account, BindingResult result) { // ... } ``` 在这个例子中,`@ModelAttribute`与`@Valid`一起使用,对提交的`Account`对象进行数据校验。 然而,`@...

    Spring MVC 学习笔记 十一 data binding

    错误信息可以通过`BindingResult`对象获取。 9. **数据绑定与异常处理** 如果数据绑定过程中出现错误,Spring MVC会自动抛出异常,如`MethodArgumentNotValidException`。通过配置全局异常处理器,我们可以统一...

    validation-api-1.0.0.GA

    public String saveUser(@ModelAttribute("user") User user, BindingResult result) { validator.validate(user, result); if (result.hasErrors()) { return "error"; } // Save user logic... return ...

    Spring In Action SpringMVC 提交表单

    在`processForm`方法中,可以使用`BindingResult`参数进行数据验证。例如,添加自定义验证规则或者使用JSR 303/JSR 349 Bean Validation进行验证。 四、视图解析 SpringMVC使用视图解析器(如...

    SpringMVC框架实例

    可以使用@Valid和BindingResult注解来进行数据验证,Spring会自动调用JavaBeans的Validator接口来执行验证规则。若验证失败,BindingResult对象可以提供错误信息。 本地化和国际化支持允许开发者为不同地区的用户...

    第12章Spring MVC参数绑定的验证

    - **BindingResult和ModelAttribute**: 在控制器方法中添加`BindingResult`参数,可以获取到验证结果。同时,使用`@ModelAttribute`注解的参数会在验证后返回,方便查看验证失败的字段。 结合这些技术,开发者...

    SpringMvc 2

    错误信息可以通过 BindingResult 或 Errors 对象获取。 9. **模板引擎**:Spring MVC 支持多种模板引擎,如 JSP、Thymeleaf、FreeMarker 等,它们提供了更灵活的页面布局和动态内容渲染。 10. **MVC 插件**:...

    使用Spring表单标签实现新增用户信息

    `@ModelAttribute`注解用于将表单数据绑定到User对象,`BindingResult`参数用于获取验证结果。在`saveUser`方法中,我们可以进行数据验证,如果验证失败,返回原视图并显示错误;验证通过则调用UserService保存用户...

    SpringMVC 传递 和 返回对象实例 以及 zTree例子

    `@DateTimeFormat`和`@NumberFormat`等注解可以帮助我们自动处理日期和数字的格式化,而`@Valid`配合`BindingResult`可以进行数据校验。 5. **服务层的交互** 在处理对象实例时,通常我们会涉及服务层的调用。例如...

    Springboot SpringMVC thymeleaf页面提交Validation实现实例.pdf

    public String submitUser(@Valid @ModelAttribute("user") SUser user, BindingResult result, Model model) { if (result.hasErrors()) { return "user"; // 返回错误页面,因为表单验证未通过 } // 验证通过...

    SpringMVC入门很简单之数据绑定(下)

    1. 数据验证:SpringMVC通过`@Valid`和`BindingResult`可以实现模型数据的校验,例如利用JSR-303/JSR-349的注解进行字段级验证。 2. 自动转换:SpringMVC提供了一套完整的类型转换系统,可以自动将请求参数转换为...

    spring 验证总结

    public String register(@ModelAttribute("user") User user, BindingResult result) { userValidator.validate(user, result); if (result.hasErrors()) { return "user/register"; // 重定向回注册页面并显示...

    SpringMVC demo

    同时,SpringMVC还提供了数据验证功能,通过@Valid和BindingResult,可以对模型对象进行校验,并获取验证结果。 SpringMVC与Spring框架其他模块的集成也非常紧密。它可以无缝结合Spring的IoC(Inversion of Control...

    SpringMVCLearningDemo.rar

    5. **数据验证**:Spring MVC支持JSR-303/JSR-349数据验证,通过在字段上添加@Valid和BindingResult,可以在控制器方法中捕获验证错误。 6. **异常处理**:通过@ControllerAdvice和@ExceptionHandler可以定义全局...

    springmvc文档资料

    Spring MVC支持数据验证,通过JSR-303/JSR-349标准的@Valid注解和BindingResult对象,可以在服务端对用户输入进行验证,并将错误信息反馈给客户端。 国际化和主题支持也是Spring MVC的亮点。通过MessageSource接口...

    SpringMVC——处理器方法参数的处理.docx

    - `DataBinder`完成绑定后,会返回一个`BindingResult`对象,其中包含绑定后的参数对象以及任何验证错误信息。 其次,我们来看看几种常见的处理器方法参数类型: 1. **Servlet API 参数**: - 可以直接在处理器...

    详解SpringMVC学习系列(6) 之 数据验证

    public String validate(@Valid @ModelAttribute("validateModel") ValidateModel model, BindingResult result, Model model) { if (result.hasErrors()) { // 处理验证错误 return "validateError"; } else {...

    SpringMVC入门+myBatis简单示例分享

    6. **数据绑定与验证**:利用`@RequestParam`、`@PathVariable`进行参数绑定,使用`@Valid`和`BindingResult`进行数据验证。 接下来,MyBatis是一个轻量级的ORM(对象关系映射)框架,它允许开发者将SQL语句直接写...

    【Java-框架-SpringMVC】(01) - 文件

    public String register(@Valid User user, BindingResult result) { if (result.hasErrors()) { return "registrationForm"; // 验证失败,返回注册表单页面 } userService.registerUser(user); return ...

Global site tag (gtag.js) - Google Analytics