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对像;看完这个例子,相信大家可以处理任何的复杂表单了。

  • 相关阅读:
    浅谈Eclipse中maven的搭建
    sdk的相关知识以及浅谈手机模拟自动化
    java开发环境搭建
    Python学习————反序列化器(复习)
    Python学习————序列化器(复习)
    Python学习————jwt
    Python学习————对称加密和非对称加密
    Python学习————drf(七)
    Python学习————集群和分布式
    Python学习————drf(六)
  • 原文地址:https://www.cnblogs.com/jpfss/p/8986477.html
Copyright © 2011-2022 走看看