当前位置: 首页 > news >正文

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

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


解决方式:

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


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

  

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

1
2
3
4
< 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的方法:

1
2
3
4
5
6
7
@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是首选。简单易行。





本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5184119.html,如需转载请自行联系原作者

相关文章:

  • Mac转Windows的拯救指南
  • thinkphp 3.1.3 redis 只能读取 无法写入的问题
  • VMWare平台应用细节
  • Docker容器虚拟化(一)—安装与镜像管理
  • Servlet常用方法
  • Mysql性能优化一
  • Android Animation(动画)---基础一
  • java:练习学校学生
  • [译]从形式到功能,设计思维的改变
  • Azure 基础:Queue Storage
  • 机器学习算法 Python R速查表
  • Nginx+Keepalived主备
  • Spotify模式并非“敏捷涅磐”
  • SQLServer存储过程返回值总结
  • 算法笔记--中国剩余定理
  • php的引用
  • 【vuex入门系列02】mutation接收单个参数和多个参数
  • 【附node操作实例】redis简明入门系列—字符串类型
  • 【刷算法】从上往下打印二叉树
  • css选择器
  • Docker: 容器互访的三种方式
  • Golang-长连接-状态推送
  • Hexo+码云+git快速搭建免费的静态Blog
  • IDEA常用插件整理
  • Linux编程学习笔记 | Linux IO学习[1] - 文件IO
  • log4j2输出到kafka
  • uva 10370 Above Average
  • 分享一份非常强势的Android面试题
  • 关于Java中分层中遇到的一些问题
  • 前端代码风格自动化系列(二)之Commitlint
  • 强力优化Rancher k8s中国区的使用体验
  • 日剧·日综资源集合(建议收藏)
  • HanLP分词命名实体提取详解
  • 如何通过报表单元格右键控制报表跳转到不同链接地址 ...
  • ​ArcGIS Pro 如何批量删除字段
  • ​iOS实时查看App运行日志
  • ​ssh-keyscan命令--Linux命令应用大词典729个命令解读
  • ​VRRP 虚拟路由冗余协议(华为)
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #pragma 指令
  • (+4)2.2UML建模图
  • (Bean工厂的后处理器入门)学习Spring的第七天
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (附源码)springboot人体健康检测微信小程序 毕业设计 012142
  • (完整代码)R语言中利用SVM-RFE机器学习算法筛选关键因子
  • (学习日记)2024.03.12:UCOSIII第十四节:时基列表
  • (原)记一次CentOS7 磁盘空间大小异常的解决过程
  • .NET BackgroundWorker
  • .net core 依赖注入的基本用发
  • .NET Framework 的 bug?try-catch-when 中如果 when 语句抛出异常,程序将彻底崩溃
  • .NET 中使用 TaskCompletionSource 作为线程同步互斥或异步操作的事件
  • .Net+SQL Server企业应用性能优化笔记4——精确查找瓶颈
  • .考试倒计时43天!来提分啦!
  • @ConfigurationProperties注解对数据的自动封装
  • [ HTML + CSS + Javascript ] 复盘尝试制作 2048 小游戏时遇到的问题