新手在刚接触Spring mvc 的时候,对于from表单的传值会觉得奇怪。主要是因为对spring mvc 的标签不熟悉造成的。
SpringMVC的表单标签之前,我们要在JSP文件的顶部加入以下指令:
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
step2 : form标签:
<form:form modelAttribute="contentModel" method="post" action="${baseUrl}/save">
modelAtrribute 属性指定该From指定的是哪个Model,当指定了对应的Model之后,就可以用在From标签使用path来指定Model的属性名称,从而绑定Model的数据。支持表单提交,可以使用常用的get/post。
input标签 :
<form:input id="name" path="name" maxlength="200" class="form-control required" />
password标签:
<form:password path="password"/>
checkbox标签:
会当checkbox绑定的是一个boolean数据的时候,那么checkbox的状态跟该boolean数据的状态是一样的,即true对应选中,false对应不选中。
<form:checkbox path="editable" data-toggle="checkbox" />
radiobutton标签:
会生成一个type为radio的Html input标签,如果绑定的数据的值对应radiobutton指定的value时则为选定状态,反之为不选定状态.
绑定Integer的radiobutton 标签:
<form:radiobutton path="radiobuttonId" value="0"/>0
<form:radiobutton path="radiobuttonId" value="1"/>1
<form:radiobutton path="radiobuttonId" value="2"/>2
select标签:
绑定的items数据可以是数组、集合或Map会根据items的内容生成select里面的option选项,当path的值和items中的某条数据值相同的时候对应的option为选定状态,反之为不选定状态.
绑定Map的select 标签:
<form:select path="selectId" items="${contentModel.testMap}"/>
<div class="controls col-md-10">
<form:select id="subsystemId" path="subsystemId" name="subsystemId"
items="${fns:lookup('LOOKUP_SYSTEM_SUBSYSTEM')}" itemValue="id"
itemLabel="label"
class="form-control" />
</div>
绑定列表数据:
现在有一个类User,类里面有个Role属性
public Class User{
private List<String> roles;
public List<String> getRoles(){
return roles
}
public void setRoles(List<String> <span><span>roles</span></span>){
<span> <span class="keyword">this</span><span>.roles = roles; </span></span>
}
}
那么当我们需要展现该User是否拥有某一个Role的时候,我们可以使用checkbox标签来绑定roles数据进行展现。当checkbox标签的value在我们绑定的列表数据中存在的时候该checkbox将为选中状态。
<form:form action="formTag/form.do" method="post" commandName="user">
<table>
<tr>
<td>Roles:</td>
<td>
<form:checkbox path="roles" value="role1"/>Role1<br/>
<form:checkbox path="roles" value="role2"/>Role2<br/>
<form:checkbox path="roles" value="role3"/>Role3
</td>
</tr>
</table>
</form:form>
就上面代码而言就是当User拥有role1的时候对应的<form:checkbox path= "roles" value= "role1"/>就会为选中状态,也就是说roles列表中包含role1的时候该checkbox就会为选中状态。
参考:
http://haohaoxuexi.iteye.com/blog/1807330
http://www.cnblogs.com/liukemng/p/3754211.html