`

spring 3 mvc BindingResult result 校验注意点

阅读更多

BindingResult result 的使用,必须在controller层增加@ModelAttribute("fundsPreTransfer") 它和ModelAttribute同时使用,并且参数要紧挨着。这样才不会报。Errors/BindingResult argument declared without preceding model attribute异常。

 

 

注意:

@RequestMapping("/funds/transfer/save")
    public String save(
            @ModelAttribute("fundsPreTransfer") FundsPreTransfer fundsPreTransfer,
            BindingResult result, Model model, HttpServletRequest request) {

        // 服务器端校验
        fundsTransferValidator.validate(fundsPreTransfer, result);
        if (result.hasErrors()) {
            // 如果存在错误,则跳转到显示页面
            return "funds/transfer/show";
        }

        Double transferAmount = fundsPreTransfer.getTransferAmount();
        String comments = fundsPreTransfer.getComments();

        fundsPreTransfer.setTransferIp(request.getRemoteAddr());
        // query fundsSerialNumber
        String fundsSerialNumber = RandomStringUtils.random(9, false, true);
        fundsPreTransfer.setFundsSerialNumber(fundsSerialNumber);// 设置流水号
        // 保存转账记录。
        fundsPreTransferService.persist(fundsPreTransfer, getUsername(),
                transferAmount);

        // 传递值到下一页面。
        String fundsAccount = request.getParameter("fundsAccount");// 资金账号
        model.addAttribute("fundsAccount", fundsAccount);
        model.addAttribute("counterpartyFundsAccount",
                request.getParameter("counterpartyFundsAccount"));
        // 查出username
        FundsBase fundsBase = fundsBaseService.findByFundsAccount(fundsAccount);
        BaseAccount baseAccount = fundsBase.getBaseAccount();
        String username = baseAccount.getUsername();
        model.addAttribute("username", username);
        model.addAttribute("transferAmount", transferAmount);
        model.addAttribute("comments", comments);
        model.addAttribute("fundsSerialNumber", fundsSerialNumber);

        return "funds/transfer/show_next";
    }

分享到:
评论
1 楼 飞天奔月 2012-08-21  
ModelAttribute同时使用,并且参数要紧挨着

太坑爹了

相关推荐

    最全最经典spring-mvc教程

    对于验证,Spring MVC提供了BindingResult和Validator接口,用于校验模型数据的正确性。 另外,Spring MVC与Spring框架的其他组件无缝集成,如Spring AOP(面向切面编程)用于实现日志、事务管理等功能,Spring ...

    Spring Mvc(1)Spring MVC 校验

    public String register(@Validated({RegistrationChecks.class, PasswordChecks.class}) RegistrationForm form, BindingResult result) { // 处理结果并保存用户 } ``` 上述示例中,`RegistrationChecks` 和...

    Spring3 MVC 实例

    可以使用JSR-303/JSR-349的Bean Validation注解(如`@NotNull`,`@Size`等)来定义字段规则,然后在控制器中使用`BindingResult`对象来检查验证结果并处理错误。 5. **配置(Configuration)**:在Spring3中,配置...

    spring3mvc真正入门资料

    - **BindingResult**:获取验证结果,用于显示错误信息。 6. **拦截器** - **HandlerInterceptor**:拦截请求,执行预处理和后处理操作,如权限验证、日志记录等。 - **@Order**:指定拦截器执行顺序。 7. **...

    spring mvc校验

    `BindingResult`参数用于捕获验证结果,如果表单数据不合法,Spring MVC会自动填充错误信息。 `BeanUtils.java`通常包含了一些实用工具方法,比如对象复制或者转换。在数据校验场景下,这些工具方法可能用于将校验...

    24 Spring Core vs Spring MVC参数校验慕课专栏1

    Spring MVC提供了良好的支持,它能够按照预设规则对传入的数据进行验证,验证失败的信息会存储在`BindingResult`对象中。开发者可以选择在JSP页面上显示这些错误信息,或者在拦截器的after方法中处理错误信息,尤其...

    大三(二)springmvc数据校验.zip

    3. **全局错误处理**:当校验失败时,Spring MVC 可以通过 `BindingResult` 对象获取校验错误信息。为了提供统一的错误响应,我们可以配置一个全局异常处理器,捕获 `MethodArgumentNotValidException` 异常,然后...

    springmvc01.zip_DEMO_JSON校验_spring mvc

    如果校验失败,Spring MVC会自动将错误信息放入BindingResult对象中,你可以进一步处理这些错误信息并返回给客户端。 **2. 文件上传** 在Spring MVC中,文件上传通常通过`MultipartFile`接口实现。你需要在表单中...

    spring-mvc-showcase.zip

    `@ModelAttribute`注解用于将请求参数与模型属性绑定,`@Valid`配合`@Validated`注解进行数据校验,错误信息可以通过`BindingResult`对象获取。 七、异常处理 通过`@ExceptionHandler`注解,可以在控制器中处理特定...

    spring mvc项目后端源码

    10. **验证**:Spring MVC 结合 `Hibernate Validator` 提供了表单验证功能,可以使用 `@Valid` 和 `BindingResult` 进行校验。 11. **RESTful 风格**:通过 `@RestController` 注解和 HTTP 方法注解(`@GetMapping...

    Spring In Action MVC 提交表单(2)-数据绑定和数据校验

    当数据不满足校验规则时,Spring MVC会自动收集所有错误,并将它们放入`BindingResult`对象中。在控制器方法中,我们可以检查这个对象并决定如何处理错误,例如重定向到错误页面或显示错误消息。 ```java @...

    Spring mvc小程序

    7. **Validation**:Spring MVC提供验证机制,通过`@Valid`和`BindingResult`可以对模型对象进行校验。 8. **ExceptionHandler**:通过定义`@ExceptionHandler`方法,可以集中处理全局的异常,提高代码的可维护性。...

    springmvc最新依赖jar包_完整版

    7. **数据验证**:通过 `@Valid` 和 `BindingResult` 注解,Spring MVC 支持 JSR-303/JSR-349 数据验证标准,可对模型对象进行校验。 8. **异常处理**:`@ExceptionHandler` 注解允许开发者自定义处理特定异常的...

    spring mvc服务端表单验证实例

    你可以使用`BindingResult`对象来获取验证错误,并将其传递给视图层。 7. **视图技术**: 实例中可能使用了JSP、Thymeleaf或其他视图技术来渲染表单和错误消息。在JSP中,可以使用EL表达式和JSTL标签库来展示错误...

    springmvc注解验证

    Spring MVC提供了一个`ValidationUtils`工具类,可以在验证逻辑中方便地调用,例如`ValidationUtils.rejectIfNull BindingResult, "field", "error.code"`,这个方法会将“field”字段标记为错误,并关联到“error....

    Spring mvc 资料

    下面,我们将深入探讨Spring MVC的相关知识点。 1. **MVC架构模式** - **模型(Model)**:模型层负责业务逻辑的处理,通常由JavaBean或领域对象构成,它们与数据源交互并返回数据。 - **视图(View)**:视图层...

    springMVC3.2实现后台校验

    在上面的例子中,`@Valid`注解会触发对`User`对象的校验,如果校验失败,`BindingResult`对象将包含校验错误信息。我们可以检查`BindingResult`来决定是否继续处理请求,或者向用户返回错误消息。 除了使用预定义的...

    springMVC整合hibernate的校验Validation

    在Spring MVC框架中整合Hibernate的校验机制,可以极大地提高我们开发Web应用的效率和代码质量。这主要是通过使用Hibernate Validator来实现数据的验证,它是一个遵循JSR 303(Java Bean Validation)和JSR 349...

    spring注入web端校验类

    标题中的“spring注入web端校验类”指的是在Spring框架中,如何将验证逻辑整合到Web应用程序中,以便对用户输入的数据进行有效性检查。在Web应用中,数据验证是至关重要的,可以防止非法数据进入系统,确保数据的...

Global site tag (gtag.js) - Google Analytics