zoukankan      html  css  js  c++  java
  • spring mvc表单form值自动传到javabean-注解@ModelAttribute

    直接通过Form Bean进行表单可以简化表单提交的处理,特别是对于复杂表单,过于简单的表单就不建议了,因为毕竟需要额外创建一个Form Bean。

    前段时间项目中有一个比较复杂的表单,有多层次而且涉及数组,如果不采用Form Bean的处理方式会比较麻烦,但多层而且是数组,之前一直没有找到如何通过Form Bean方式进行处理,但相信Spring MVC应该可以做到,因为Spring的强大之处就是IOC嘛,所以在网上查阅资料,并不断尝试后终于解决,现在不管是多么复杂的表单均可以通过Form Bean的方式进行处理,大大简化复杂表单的处理。
    解决方案就是采用Spring的注解@ModelAttribute, 这个注解相信大家都比较熟悉,因为Spring很多关于Form处理都有关于它的例子,但这些例子给出的表单都比较简单,而且采用了Spring的 Form标签,而我比较喜欢原始的JSP和HTML。闲话少说,现在正式开始我们的复杂Form处理,我的Form Bean结构如下:
    FormBean的结构如下:
    private String name;
    private int age;
    private String[] associate;
    private ComBen[] bens; //另一个数组对像
    ComBen的结构如下:
    private String com;
    private int[] typevalue;
    private String[] typename;
    private ThirdBen[] thdben;//再一层数组对像
    ThirdBen的结构如下:
    private String thdname;
    private String value[];//又一层数组值
    相信已经足够复杂了,我们只需要将FormBean在Controller中标识为@ModelAttribute,如下:
    @RequestMapping(value=”/test/testForm.do”, method = RequestMethod.POST)
    public String testFormBean(@ModelAttribute(“fbean”)FormBean ben) {



    }

    注意:@ModelAttribute中的标识名,这个要与jsp中的Form id相同)。

    再看看我们的JSP页面中的Form如何编写(form要给定一个id,这个id要与@ModelAttribute中的名称一致):



    简洁吧,我们只要把上述form提交到Controller,就可以在Controller中直接得到这个复杂的FormBean对像;看完这个例子,相信大家可以处理任何的复杂表单了。

  • 相关阅读:
    PHP基础学习笔记(一)
    安装wampserver之后,浏览器中输入localhost页面显示IIS7解决办法
    HTML5常识总结(一)
    AngularJs中的服务
    AngularJs中的directives(指令part1)
    Happy Number——LeetCode
    Binary Tree Zigzag Level Order Traversal——LeetCode
    Construct Binary Tree from Preorder and Inorder Traversal——LeetCode
    Construct Binary Tree from Inorder and Postorder Traversal——LeetCode
    Convert Sorted Array to Binary Search Tree——LeetCode
  • 原文地址:https://www.cnblogs.com/jpfss/p/8986477.html
Copyright © 2011-2022 走看看