SpringMVC学习笔记(5)-----标签库
来源:互联网 发布:市场上主流单片机 编辑:程序博客网 时间:2024/06/06 05:34
文本框
<form:input path="XXX" />
会被解析成:<input id="XXX" name="XXX" type="text" value=""/>
密码处理
<form:password path="XXX" />
会被解析成:<input id="XXX" name="XXX" type="password" value=""/>
文本域
<form:textarea path="XXX" rows="5" cols="30"/>
会被解析成:<textarea id="XXX" name="XXX" rows="5" cols="30"/>
复选框
有三种checkbox标签的使用方法满足你对checkbox的需求。
第一种用法:若绑定值是java.lang.Boolean类型,则值为true时,input(checkbox)就标记为选中。其value属性对应于setValue(Object)值的属性的解析值。
<form:checkbox path="XXX"/>
第二种用法:若绑定值是array或java.util.Collection类型,则当设定的setValue(Object)值出现在绑定的Collection中时,input(checkbox)就标记为选中。
<form:checkbox path="XXX" value="A"/>
<form:checkbox path="XXX" value="B"/>
<form:checkbox path="XXX" value="C"/>
第三种用法:若绑定值为其他类型,则当设定的setValue(Object)与其绑定值相等时,input(checkbox)才标记为选中。
<form:checkbox path="XXX" value="DDD"/>
三种方法的CheckBox生成的HTML语句都是一样的。
<form:checkbox path="XXX" />
会被解析成:
<input id="XXX1" name="XXX" type="checkbox" value="true"/><input type="hidden" name="_XXX" value="on"/>
对于每个checkbox都包含了一个下划线(”_”),再跟上一个隐藏参数。这样一来,就相当于告诉Spring“这个checkbox在表单中是可见的,并且希望表单数据将要被绑定到的对象能够反映出任意的checkbox的状态”。
复选框(多选)
(1)控制器中增加一个列表项,用@ModelAttribute注释
@ModelAttribute("likeSportsList") public List<String> getLikeSportsList() { List<String> list = new ArrayList<String>(); list.add("足球"); list.add("篮球"); list.add("排球"); list.add("乒乓球"); list.add("羽毛球"); return list; }
(2)JSP页面中使用如下代码:
<tr> <td><form:label path="likeSports">喜欢的运动</form:label></td> <td><form:checkboxes items="${likeSportsList}" path="likeSports" /></td></tr>
其中items
的值与控制器中的列表项的ModelAttribute的value相同。
path要与model(student)中的变量名相同。
(3)在显示页面使用如下代码:
<tr> <td>喜欢的运动</td> <td> <c:forEach var="sport" items="${student.likeSports}"> <c:out value="${sport}" /> </c:forEach> </td></tr>
PS:JSTL标签可以支持EL表达式,但是JAVA程序片方式不太容易实现获取到EL表达式的值。 有大佬看到会的话,求告知。
单选按钮
使用<form:radiobutton path="XXX" value="XXX的值" label="显示的值"/>
会被解析成:
<input id="XXX1" name="XXX" type="radio" value="XXX的值" checked="checked"/><label for="XXX1">男</label>
可以在Controller中的跳转该显示页面的方法中,为其设置默认值,因为有一个已经初始化的student对象,名为command。
单选多按钮
(1)首先在控制器中使用@ModelAttribute注释,来注释getXXXList方法,该方法返回一个List。
(2)需要表格的JSP页面中使用<form:radiobuttons path="XXX" items="${XXXList}" />
,将会被解析成:
<input id="XXX1" name="XXX" type="radio" value="XXXList的第一个值"/><label for="XXX1">XXXList的第一个只</label><!--List中的剩下选项-->
下拉选项(Select)
(1)同样需要一个List作为下拉选项列表的载体。在拦截该URL的控制器中增加一个返回列表的方法,使用@ModelAttribute进行注释。
@ModelAttribute("countryList") public List<String> getCountryList() { List<String> list = new ArrayList<String>(); list.add("华东"); list.add("华中"); list.add("华北"); list.add("华南"); list.add("西南"); return list; }
(2)在该JSP中使用如下标签:
<form:select path="XXX"> <form:option value="NONE" label="请选择..." /> <form:options items="${XXXList}" /></form:select>
以上所有path都是指Model中的变量名,需要一致。
列表多选框(没啥用)
(1)既然是多选框,又要使用List作为多选框的载体。在控制器的增加一个方法返回该list对象。
@ModelAttribute("skillsList") public List<String> getSkillsList() { List<String> list = new ArrayList<String>(); list.add("JAVA"); list.add("C"); list.add("C++"); list.add("Python"); return list; }
(2)JSP中使用如下标签:
<form:select path="skills" items="${skillsList}" multiple="true"></form:select>
隐藏字段域(Hidden)
在上面的checkbox复选框中,SpringMVC标签会被解析成的HTML标签中就含有Hidden字段。具体作用可以查询HTML的Hidden的作用。
使用<form:hidden path="XXX" value="AAA"/>
被解析成:<input id="XXX" name="XXX" type="hidden" value="AAA"/>
- SpringMVC学习笔记(5)-----标签库
- springmvc笔记-4-标签库
- springMVC学习笔记-请求处理&springMVC form标签
- SpringMVC 学习笔记5
- spring学习笔记(5)-springmvc
- springmvc学习笔记(14)——mvc:view-controller标签
- SpringMVC学习(11):表单标签
- SpringMVC学习笔记(1):初识SpringMVC
- SpringMVC架构---SpringMVC学习笔记(一)
- SpringMVC校验---SpringMVC学习笔记(八)
- SpringMvc学习笔记(二)SpringMvc控制器
- SpringMVC架构---SpringMVC学习笔记(一)
- SpringMVC校验---SpringMVC学习笔记(八)
- SpringMVC表单标签(5)
- SpringMVC学习笔记--(1)
- SpringMVC学习笔记(一)
- SpringMVC学习笔记(二)
- SpringMVC学习笔记(三)
- 多继承时virtual的使用
- fastDfS集群(8节点)
- this关键字
- JQuery基础
- 关押罪犯 codevs 1069(整理:加权并查集?+虚点并查集+二分图染色)
- SpringMVC学习笔记(5)-----标签库
- java初级阶段quickhit游戏
- CF 855C. Helga Hufflepuff's Cup【树形DP】
- 爬虫学习--基于selenium动态抓捕(一)安装
- Bringing up interface eth0: Device eth0 does not seem to be present, delaying initialization.
- 二叉搜索树的第K个结点
- js(question)
- Dagger2学习从这里开始
- MongoDB之Ubuntu16.04安装mongodb