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) 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM