SpringMVC接收checkbox传值

Controller方法形参接收checkbox的值,既可以用String,也可以用String[]。

 

字符串数组接收的测试代码如下:

复制代码
@Controller
@RequestMapping("/mycontroller")
public class MyController {

    @RequestMapping(method = RequestMethod.GET)
    public String form() {
        return "mycontroller";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String form1(@RequestParam("interest") String[] interest, Model model) {
        String a = Arrays.toString(interest);
        model.addAttribute("ins", a);
return "ok";
    }

}
复制代码

 

测试页面如下:

/WEB-INF/jsp/mycontroller.jsp

复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>请选择</title>
</head>
<body>
    <form action="${pageContext.request.contextPath }/mycontroller.action"
        method="post">
        <input type="checkbox" name="interest" value="a1" />a1<br />
        <input type="checkbox" name="interest" value="a2" />a2<br />
        <input type="checkbox" name="interest" value="a3" />a3<br />
        <input type="checkbox" name="interest" value="a4" />a4<br />
        <input type="checkbox" name="interest" value="a5" />a5<br />
        
        <input type="submit"/>
    </form>
</body>

</html>
复制代码

结果显示页面如下:

/WEB-INF/jsp/ok.jsp

复制代码
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>操作成功</title>
</head>
<body>
    
    选择的内容是:${ins}<br/>
</body>

</html>
复制代码

结果:

 

 

字符串接收的测试代码如下(测试完数组接收后 修改即可):

复制代码
@Controller
@RequestMapping("/mycontroller")
public class MyController {

    @RequestMapping(method = RequestMethod.GET)
    public String form() {
        return "mycontroller";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String form1(@RequestParam("interest") String interest, Model model) {
        model.addAttribute("ins", interest);
        
        return "ok";
    }

}
复制代码

 结果是:

 

小知识:

  如果checkbox都留空(不选择),那么Controller会报错。解决办法:①前端js判断;②前端加一个hidden的checkbox。

补充方法:

@RequestParam(value = "interest", required = false) 

 

posted on   LarryZeal  阅读(26075)  评论(0编辑  收藏  举报

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

统计

点击右上角即可分享
微信分享提示