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 ...
随机推荐
- Leetcode665.Non-decreasing Array非递减数组
给定一个长度为 n 的整数数组,你的任务是判断在最多改变 1 个元素的情况下,该数组能否变成一个非递减数列. 我们是这样定义一个非递减数列的: 对于数组中所有的 i (1 <= i < n ...
- Ajax--PHP+JQuery+Ajax解析json、XML数据、加载页面
一.JQuery+Ajax用get.post方式提交和请求数据 知识要点: $('#userName').blur(function () { var txt = $(this).val(); $.a ...
- 手把手教你如何玩转消息中间件(ActiveMQ) https://blog.csdn.net/cs_hnu_scw/article/details/81040834
#情景引入小白:起床起床起床起床....快起床~我:怎么了又,大惊小怪,吓到我了.小白:我有事有事想找你,十万火急呢~~我:你能有什么事?反正我不信..那你说说看~~小白:就是我有两个小表弟,叫大白和 ...
- Django 配置MySQL数据库 mysql
Django 配置MySQL数据库 在settings.py中配置 DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', # ...
- babel 7.x 结合 webpack 4.x 配置
今天在学习webpack的使用的时候,由于学习的教程是2018年初的,使用的是 webpack 3.x 和 babel 6.x ,然后学习的过程中出现的了很多问题. 解决问题之后,总结一下新的 bab ...
- if (donutString.indexOf("dozen") != -1)是什么意思
if (donutString.indexOf("dozen") != -1)是什么意思 function parseDonuts(donutString) { numDonuts ...
- scroll 滚动到指定位置触发事件 and 点击一按钮/链接让页面定位在指定的位置
scroll 滚动到指定位置触发事件:$(function(){ $(window).scroll(function() { var s =$(window).scrollTop(); if (s&g ...
- Nginx 外的另一选择,轻量级开源 Web 服务器 Tengine 发布新版本
新版发布 近日,轻量级开源 Web 服务器 Tengine 发布了2.3.0版本,新增如下特性: ngx_http_proxy_connect_module,该模块让 Tengine 可以用于正向代理 ...
- QT 捕获事件(全局拦截)
QT 捕获应用键盘事件(全局拦截) 主窗口只有一个QTabWidget,每个tab中嵌入相应的窗口,在使用的过程中,需要主窗口响应键盘事件,而不是tab中的控件响应.故采取以下方式. 重写QAppli ...
- SpingMVC ModelAndView, Model,Control以及参数传递总结
1.web.xml 配置: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 <servlet> <servlet-name>dispatcher& ...