从Spring 2.0开始,Spring MVC开始全面支持表单标签,通过Spring MVC表单标签,我们可以很容易地将控制器相关的表单对象绑定到HTML表单元素中。
form标签 和使用任何JSP扩展标签一样,在使用Spring表单标签之前,你必须在JSP页面中添加一行引用Spring表单标签的声明,如下所示:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>
body中正式引入<from:from></from:from>
<form:form> 用户名:<form:input path="userName" /> <br> 密 码:<form:password path="password" /><br> Email:<form:input path="email" /><br> <input type="submit" value="注册" name="testSubmit"/> <input type="reset" value="重置" /> </form:form>
它不需要象HTML的<form>标签或Struts的表单标签一样通过action属性指定表单提交的地址。假设和<form:form>标签对应的控制器的URL是“/User.html”,应用部署目录为“wangfeipeng”,则最后产生的HTML代码自动包含表单提交地址: <form id="command" method="post" action="/wangfeipeng//User.html">…</form>
<form:form>标签内部的组件标签(如<form:input>、<form:password>等)可以直接和表单控制器所对应的表单对象进行值绑定。 默认情况下,表单控制器将表单对象以“command”为名放到PageContext中,你可以通过表单控制器commandName属性的设置使用其它的名字(假设设置为“user”),这时你必须通过<form:form commandName="user">显式指定绑定的表单对象名称。
单选框和复选框组件标签
<form:radiobutton>和<form:checkbox>。 radiobutton 单选框组件由两个同名的标签组件组成,当表单对象对应属性值和value值相等时,单选框选中。下面是一个代表性别的单选框: <form:form> 性 别:<form:radiobutton path="sex" value="0"/>男 <form:radiobutton path="sex" value="1"/>女 </form:form> 当表单对象的sex属性为0时(可以是String、int等可以自动转换为String的类型),所生成的HTML代码如下所示: <form id="command" method="post" action="/baobaotao//registerUser.html"> 性 别:<input id="sex1" name="sex" type="radio" value="0" checked="checked"/>男 <input id="sex2" name="sex" type="radio" value="1"/>女 </form>
上面的path属性值就是对应实体类中的字段名,这就是我之前搞不明白为什么提交的时候没有name属性也能提交