SpringMVC-表单标签

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;

@Controller
public 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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值