Spring MVC遭遇checkbox的问题解决方案

Spring MVC遭遇checkbox的问题是:当checkbox全不选时候,则该checkbox域的变量为null,不能动态绑定到spring的controller方法的入参上,并抛出异常。

解决方案:

1、javascript方式提交,提交前拼提交参数串,拼完后通过ajax方式提交。可以使用controller请求参数绑定。

缺点:逐个提取表单参数,并对checkbox选项参数进行判断拼装(字符分割),最终提交到后台太麻烦。

2、添加checkbox的同名隐藏域,从而使提交过去数据永不为null。这样就可以使用controller请求参数绑定了。

<input type="checkbox"  name="test" value="1"/>aaa
<input type="checkbox"  name="test" value="2"/>bbb
<input type="checkbox"  name="test" value="3"/>ccc
<input type="hidden" name="test"/>

提交到controller的方法:

@RequestMapping("/test")
private String LoginAction(HttpServletRequest request,
                           HttpServletResponse response,
                           @RequestParam(value = "username") String username,
                           @RequestParam(value = "password") String password,
                           @RequestParam(value = "test") String test,
                           @RequestParam(value = "yzm") String yzm) {

test参数的值为:

全不选时候:""

选两个:"2,3,"

3、使用spring的标签,我不会用,我也不想会,因为表单很多时候都是用js写的,而非html。不希望mvc入侵太深。

综合对比:方案2是首选。简单易行。

如果你发现更简单的处理方式,也别忘了回复告诉我。

Spring MVC遭遇checkbox的问题解决方案,布布扣,bubuko.com

时间: 2024-08-06 15:40:40

Spring MVC遭遇checkbox的问题解决方案的相关文章

spring mvc请求参数中文乱码解决方案

POST 请求 在web.xml中加上增加过滤器 1 <filter> 2 <filter-name>encodingFilter</filter-name> 3 <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class> 4 <init-param> 5 <param-name>encoding</param

Spring MVC 结合Velocity视图出现中文乱码的解决方案

编码问题一直是个很令人头疼的事,这几天搭了一个Spring MVC+VTL的web框架,发现中文乱码了,这里记录一种解决乱码的方案. 开发环境为eclipse,首先,检查Window->preferences->workplace->Text File Encoding,设置为GBK .vm文件中加入编码约束,举例如下 <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Typ

Spring MVC 404 Not Found 无错误日志解决方案

场景描述,使用Spring MVC 框架,进行数据保存,用firefox的firebug跟踪发现404 Not Found. 分析:后台没有打印任何错误日志,无法分析问题所在. 解决方案(由我朋友提供) 在spring-mvc.xml 配置文件中 加上一下红色部分的配置文件. 在controller 下面添加 ControllerAdviceTest.java 文件(注意:必须是controller下面,因为在spring-mvc.xml 中配置了 component-scan) 再次运行 后台

Spring MVC使用@ResponseBody返回JSON数据406问题解决方案

其实前面一篇关于zTree返回JSON数据的文章已经有一种解决方案了,但是当我今天在新公司搭建新环境的时候,发现决然又不行了,所以我觉得那应该不是最优的解决方案. 说起来,我以前接触到的一个项目,根本没有配置spring的文件,就直接用@ResponseBody可以返回JSON数据,不知道其中的秘诀在什么地方,搞不懂了. 今天主要提供另一个解决@ResponseBody返回JSON数据,页面抛出406错误的解决方案. 第一步,引入包: <dependency> <groupId>c

Spring MVC关于IE对application/json的content-type不支持解决方案---duang 解决了

在现代的web开发中,我们为了用户的体验广泛的使用异步开发,用户看不见后台的实际执行情况,只关心结果,所以良好的提示消息决定了系统对用户的态度,所以要开发一套标准的提示消息,我选择了JSON,但是在实际开发过程中,会发现IE不支持application/json类型,所以我也在网上查找了好多同样的问题,但是大部分说法都是注册注册表,但是我门发布系统又不能让每个用户都注册一下注册表,这显然很不合理,所以我发现,只要修改返回的内容的类型(ContentType)即可解决问题. 1,默认情况下,我们会

Spring MVC无法获取到页面表单put过来的参数的解决方案

问题: 在使用Spring MVC开发resetful风格的Web应用时,发现Sping接收不到页面Form表单传到后台的值. 解决: 1.把Spring及Spring MVC的版本升级到3.1.1 <org.springframework.version>3.1.1.RELEASE</org.springframework.version> 2.增加HttpPutFormContentFilter过滤器 <filter> <filter-name>Http

视图框架:Spring MVC 4.0(1)

目录 一.表单标签库 1.1.简介 1.2.常用属性 1.3.form标签与input标签 1.4.checkbox标签 1.5.radiobutton标签 1.6.password标签 1.7.select标签 1.8.option标签 1.9.options标签 1.10.textarea.errors标签 1.11.hidden标签 1.12.radiobuttons 单选列表与checkboxs复选列表 二.视图解析器 2.1.ViewResolver视图解析器 2.2.链式视图解析器

Spring MVC 学习笔记(二):@RequestMapping用法详解

一.@RequestMapping 简介 在Spring MVC 中使用 @RequestMapping 来映射请求,也就是通过它来指定控制器可以处理哪些URL请求,相当于Servlet中在web.xml中配置 <servlet>     <servlet-name>servletName</servlet-name>     <servlet-class>ServletClass</servlet-class> </servlet>

Spring MVC静态资源处理(转)

优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往使用 *.do . *.xhtml等方式.这就决定了请求URL必须是一个带后缀的URL,而无法采用真正的REST风格的URL. 如果将DispatcherServlet请求映射配置为"/",则Spring MVC将捕获Web容器所有的请求,包括静态资源的请求,Spring MVC会将它们当