在springmvc项目开发时,一般使用EL表达式和JSTL标签来完成页面视图,其实spring也有自己的一套表单标签库,通过spring表单标签,可以很容易的将模型数据中的表单/命令对象绑定到html表单元素中。在使用spring表单标签之前,必须在jsp页面中添加一行引用spring标签库的声明,引入标签声明后就可以使用spring表单标签了。代码如下
<%@taglib prefix="fm" uri="http://www.springframework.org/tags/form" %> <fm:form method="post" modelAttribute="user"> 用户编码:<fm:input path="userCode"/><br/> 用户名称:<fm:input path="userName"/><br/> 用户密码:<fm:password path="password"/><br/> 用户生日:<fm:input path="birthday" Class="Wdate" readonly="readonly" onclick="WdatePicker();"/><br/> 用户地址:<fm:input path="address"/><br/> 联系电话:<fm:input path="phone"/><br/> 用户角色: <fm:radiobutton path="userRole" value="1"/>系统管理员 <fm:radiobutton path="userRole" value="2"/>经理 <fm:radiobutton path="userRole" value="3"/>普通用户 <br/> <input type="submit" value="保存"/> </fm:form>
在上述代码中的<fm:form>标签的modelAttribute属性用来指定绑定的模型属性,若该属性不指定,默认从模型中尝试获取名为"command"的表单对象,若不存在此表单对象,将会报错,所以一般情况下,都会指定modelAttribute。还有<fm:input/>、<fm:password/>、<fm:radiobutton/>等标签,基本上这些标签都拥有以下属性:
- path:属性路径,表示表单对象属性,如userName、userCode等
spring的常用表单标签
<fm:form/> 渲染表单元素
<fm:input/> 输入框组件标签
<fm:password/> 密码框组件标签
<fm:hidden/> 隐藏框组件标签
<fm:textarea/> 多行输入框组件标签
<fm:radiobutton/> 单选按钮组件标签
<fm:checkbox/> 复选框组件标签
<fm:select/> 下拉列表组件标签
<fm:errors/> 显示表单数据校验所对应的错误信息