SpringMVC-表单标签

来源:互联网 发布:智能电视网络设置 编辑:程序博客网 时间:2024/05/02 02:03

1.SpringMVC的表单标签可以实现将模型数据中的属性和HTML表单元素相绑定,以实现表单数据更便捷编辑和表单值的回显示。

2.通过Form的modelAttribute属性来指定绑定的模型属性,若没有指定该属性,则默认从reqeust域对象中读取command的表单bean,若该属性值不存在,则会报错。

3.<form:input/>,<form:select/>等用来提交数据,SpringMVC中可以指定以下属性:
-path:表单字段,对应html元素的name属性,支持级联属性
-htmlEscape:是否对表单值的HTML特殊字符进行转换。默认为true
-cssClass:表单组件对应的css名
-cssErrorClass:表单组件数据存在错误时,采取的css样式。

4.<form:radiobutton>单选框组件标签,当表单bean对应的属性值和value值相等时,当选矿被选中。
<form:radiobuttons>单选框组标签,用于构造多个单选框
-items:可以是一个List、String[] Map
-itemValue:指定Radio的value值,可以是集合中bean的一个属性值。
-itemLabel 指定radio的label值
-delimiter:多个单选框可以通过delimiter指定分隔符
其他的多选:form:checkbox checkboxs,select, option等大多和radiobuttons的使用方法相同。

5.form:errors显示表单数据校验所对应的错误
<form:errors path="*"/>显示表单所有的错误
<form:errors path="user*"/>显示user前缀的所有错误
<form:errors path="username"/>显示username的错误。

以下为代码举例:

form.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@ page import="java.util.Map,java.util.HashMap" %><%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>Insert title here</title></head><body><%Map<Integer, String>ages =new  HashMap<Integer, String>();ages.put(20, "年轻人");ages.put(40, "中年人");request.setAttribute("ages", ages);%><!-- 也可以不定义 modelAttribute 使用默认的command属性 --><form:form method="POST" action="/spring/test" modelAttribute="person">ID:<form:input path="id"/><br>Name:<form:input path="name"/><br>Age:<form:radiobuttons path="age" items="${ages }" /><br><input type="submit" value="submit"></form:form></body></html>
TestController.java

package spring;import java.util.Map;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;@Controllerpublic class TestController {@RequestMapping(value="/test", method=RequestMethod.GET)public String testGet(Map<String, Object>map){Person person = new Person();map.put("person", person);return "form";}@RequestMapping(value="/test", method=RequestMethod.POST)public String testPost(Person person){System.out.println(person);return "success";}}

<完>

0 0
原创粉丝点击