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对像;看完这个例子,相信大家可以处理任何的复杂表单了。
spring mvc表单form值自动传到javabean-注解@ModelAttribute的更多相关文章
- 使用Spring MVC表单标(转)
概述 在低版本的Spring中,你必须通过JSTL或<spring:bind>将表单对象绑定到HTML表单页面中,对于习惯了Struts表单标签的开发者来说,Spring MVC的 ...
- Spring MVC表单提交
实际应用中,列表中的单条记录的修改,可能需要传很多对象参数到后台服务器,Spring MVC表单标签<form:> 提供了一种简洁的提交方式. <form id="form ...
- Spring MVC - 表单处理示例
环境搭建 环境: Intellij IDEA Spring MVC 完整的项目文件结构如下所示: Student.java package com.ktao.controller; public cl ...
- Spring MVC表单处理
以下示例演示如何编写一个简单的基于Web的应用程序,它使用Spring Web MVC框架使用HTML表单. 首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework ...
- Spring MVC表单标签
从Spring 2.0开始,Spring MVC开始全面支持表单标签,通过Spring MVC表单标签,我们可以很容易地将控制器相关的表单对象绑定到HTML表单元素中. form标签 和使用任 ...
- spring mvc表单的展现、输入处理、校验的实现
之前已经实现了spring mvc的入门例子及如何处理带参数的请求Controller编写.本文主要记录: 1)重定向请求 2)处理路径中含有变量的请求 3)使用JSR-303进行校验 ① 首先,编写 ...
- [Spring MVC] - 表单提交
Spring MVC自带的表单标签比较简单,很多时候需要借助EL和JSTL来完成. 下面是一个比较简单的表单提交页面功能: 1.User model package com.my.controller ...
- Spring MVC 表单校验 (七)
完整的项目案例: springmvc.zip 目录 实例 除了依赖spring-webmvc还需要依赖jackson-databind(用于转换json数据格式)和hibernate-validato ...
- Spring MVC表单防重复提交
利用Spring MVC的过滤器及token传递验证来实现表单防重复提交. 创建注解 @Target(ElementType.METHOD) @Retention(RetentionPolicy.RU ...
随机推荐
- 【教程】5分钟在PAI算法市场发布自定义算法
概述 在人工智能领域存在这样的现象,很多用户有人工智能的需求,但是没有相关的技术能力.另外有一些人工智能专家空有一身武艺,但是找不到需求方.这意味着在需求和技术之间需要一种连接作为纽带. 今天PAI正 ...
- 当spark遇见hbase
一.使用sbt引入hbase依赖包 "org.apache.hbase" % "hbase-server" % "2.1.0", " ...
- Java 分页对象
以前一直没有自己写过分页对象,自己模仿着写了一个分页对象,写完之后感觉也是挺简单的 package com.css.util; import java.io.Serializable;import j ...
- 2013B题碎纸片拼接
Photo1_1: clear;clc; path='E:\B\附件1\'; files=dir('E:\B\附件1\*.bmp'); % objdir='E:\B\附件1\'; % bgfile=[ ...
- golang的变量
(1)只声明:var 变量名字 类型 var a int var a, b, c,d int 只有类型,如果初始化表达式被省略,那么将用零值 ...
- 如何使用Data Lake Analytics创建分区表
前言 Data Lake Analytics(后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS.TableStore上的数据进行查询分析. 在关系型数据库 ...
- Linux之源码包
暂时感觉用不上,到时需要了解的时候再补上
- larbin终于编译完成
1.目前sourceforge不能下载,只能找mirror进行下载了: 2.一些头文件始终找不到,定位了一下,应该是makefile中设置有问题,把CXXFLAGS中的-I-去掉,即可编译成功:
- iOS app发布流程
http://www.xuebuyuan.com/1980497.html http://blog.csdn.net/alincexiaohao/article/details/38725367 ap ...
- SPSS函数之期和时间函数
SPSS函数之期和时间函数 CTIME.DAYS(timevalue)数值.返回 timevalue 中的天数(包括有小数位的天数),timevalue 必须为时间格式的数值或表达式,如 TIME.x ...