测试链接
1
| <a href="radiobuttonForm">测试radiobuttonForm</a><br>
|
域对象
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| public class User implements Serializable { private static final long serialVersionUID = 1L; private String sex; public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } }
|
请求处理方法
1 2 3 4 5 6 7 8 9 10 11 12
| @GetMapping(value = "/radiobuttonForm") public String registerForm(Model model) { User user = new User(); user.setSex("女"); model.addAttribute("user", user); return "radiobuttonForm"; }
|
绑定的表单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <!-- modelAttribute="user"表示绑定到域中的user属性 --> <form:form modelAttribute="user" method="post" action="radiobuttonForm"> <table> <tr> <td>性别:</td> <!--path指定user属性中的成员变量名称 --> <!--value属性的值于user对象的sex属性的值相等的时候选中 --> <td><form:radiobutton path="sex" value="男" />男 <form:radiobutton path="sex" value="女" />女 <form:radiobutton path="sex" value="不男不女" />不男不女(自己写的文本) <form:radiobutton path="sex" value="半男半女" />不男不女(自己写的文本) </td> </tr> </table> </form:form>
|
渲染效果
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <form id="user" action="radiobuttonForm" method="post"> <table> <tr> <td>性别:</td> <td> <input id="sex1" name="sex" type="radio" value="男" />男 <input id="sex2" name="sex" type="radio" value="女" checked="checked" />女 <input id="sex3" name="sex" type="radio" value="不男不女" />不男不女(自己写的文本) <input id="sex4" name="sex" type="radio" value="半男半女" />不男不女(自己写的文本) </td> </tr> </table> </form>
|
显示效果
使用这种方式按钮的提示文本要自己
使用数组或集合作为数据源
测试链接
1
| <a href="radiobuttonsForm">测试radiobuttonsForm</a><br>
|
请求处理方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| @GetMapping(value = "/radiobuttonsForm") public String registerForm2(Model model) { User user = new User(); user.setSex("男"); List<String> sexList = new ArrayList<String>(); sexList.add("男"); sexList.add("女"); sexList.add("不男不女"); sexList.add("半男半女"); model.addAttribute("user", user); model.addAttribute("sexList", sexList); return "radiobuttonsForm"; }
|
绑定的表单
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| <!-- 绑定模型中的user属性对应的对象 --> <form:form modelAttribute="user" method="post" action="radiobuttonsForm"> <table> <tr> <td>性别:</td> <!-- items绑定数据源,数据源可以是数组,集合,Map, --> <!-- 数据源中的数据将会被渲染成一个个选项 --> <!-- path绑定模型中user属性对应的对象的sex成员变量, --> <!-- 该成员变量的值如果在数据源中找到,将会勾选值相等的选项 --> <td><form:radiobuttons path="sex" items="${sexList }" /></td> </tr> </table> </form:form>
|
渲染效果
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
| <form id="user" action="radiobuttonsForm" method="post"> <table> <tr> <td>性别:</td> <td> <span> <input id="sex1" name="sex" type="radio" value="男" checked="checked" /> <label for="sex1">男</label> </span> <span> <input id="sex2" name="sex" type="radio" value="女" /> <label for="sex2">女</label> </span> <span> <input id="sex3" name="sex" type="radio" value="不男不女" /> <label for="sex3">不男不女</label> </span> <span> <input id="sex4" name="sex" type="radio" value="半男半女" /> <label for="sex4">半男半女</label> </span> </td> </tr> </table> </form>
|
显示效果
使用这中方式不需要再jsp
页面中写提示文本,Spring MVC
会自动生成label
标签作为提示文本,提示文本的内容是数据源中对应的数据项,单选按钮的value
属性也是Spring MVC
生成的,属性值也是数据源中的对应的数据项.
使用Map作为数据源
测试链接
1
| <a href="radiobuttonsForm2">测试radiobuttonsForm2</a><br>
|
请求处理方法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| @GetMapping(value = "/radiobuttonsForm2") public String registerForm3(Model model) { User user = new User(); user.setSex("1"); Map<String, String> sexMap = new HashMap<String, String>(); sexMap.put("1", "男"); sexMap.put("2", "女"); sexMap.put("3", "不男不女"); sexMap.put("4", "半男半女"); model.addAttribute("user", user); model.addAttribute("sexMap", sexMap); return "radiobuttonsForm2"; }
|
渲染结果
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
| <form id="user" action="radiobuttonForm2" method="post"> <table> <tr> <td>性别:</td> <td> <span> <input id="sex1" name="sex" type="radio" value="1" checked="checked" /> <label for="sex1">男</label> </span> <span> <input id="sex2" name="sex" type="radio" value="2" /> <label for="sex2">女</label> </span> <span> <input id="sex3" name="sex" type="radio" value="3" /> <label for="sex3">不男不女</label> </span> <span> <input id="sex4" name="sex" type="radio" value="4" /> <label for="sex4">半男半女</label> </span> </td> </tr> </table> </form>
|
使用这种方式同样不需要再jsp
中自己写上单选按钮的提示文本,Spring MVC
会生成label
标签作为提示文本,lable
标签中的内容对应数据源map
中的值,map
中的key
作为单选按钮value
属性的值。
显示效果
原文链接: 4.1.8 radiobutton标签 4.1.9radiobuttons标签