SpringMVC总结(二)

本文详细介绍了SpringMVC的表单标签使用,包括form、input、password、hidden、textarea、checkbox、radiobutton等标签的特性。同时,讨论了数据绑定、数据类型转换、数据格式化和数据校验的过程,涉及ConversionService、BindingResult和JSR 303验证框架的应用。
摘要由CSDN通过智能技术生成

SpringMVC表单标签概述

使用前必须在JSP页面中添加一行引用Spring标签库的taglib指令声明

<%@ taglib prefix="fm" url="http://www.springframework.org/tags/form" %>

引入标签声明之后就可以使用spring表单标签

<fm:form/>:渲染表单元素
<fm:input/>:渲染输入框元素
......

SpringMVC表单标签库

  1. form标签
    SpringMVC中的form标签有两个作用
  • 自动绑定Model中的一个属性值到当前form对象的实体对象,默认为command属性,这样我们就可以在form表单体中方便地使用该对象的属性
  • 支持我们在提交表单时使用除了GET和POST之外的其他方法进行提交,包括DELETE,PUT等,

属性有:modelattribute(绑定的模型属性名称);commandName(绑定的也是模型属性名称,作用和modelattribute一样);acceptCharset(定义服务器接收的字符编码)
其中command属性是很重要的属性,定义了模型属性的名称,其中包含一个绑定的JavaBean对象,该对象的属性将用于填充生成的表单,如commandName属性存在,则不需在返回包含该表单的视图的请求处理方法中添加响应的模型属性

  1. input标签
    SpringMVC的input标签的唯一作用是绑定表单数据,通过path属性来指定绑定的Model中的值
<%@ taglib prefix="fm" url="http://www.springframework.org/tags/form" %>
<body>
	<h3>注册界面</h3>
	<fm:form action="register" method="post">
		姓名:<fm:input path="name"/><br>
		性别:<fm:input path="sex"/><br>
		年龄:<fm:input path="age"/><br>
	</fm:form>
</body>

如果model中存在一个属性名称为command的javabean,而且该javabean拥有name,sex,age,则在渲染代码上时就会取command的对应属性赋值给对应标签的属性
实体类

public class User{
   
	private String name;
	private String sex;
	private int age;
	//省略setter和getter
}

controller层代码实现register方法

@Controller
public class UserController{
   
	@RequestMapping(value="/register",method=RequestMethod.GET){
   
		User user=new User("zhangsan","男",23);
		//model中添加属性command,值为user对象
		model.addAttribute("command",user);
		return "register";
	}
}

指定modelAttribute属性也可以达到相同效果

<fm:form modelAttribute="user" action="register" method="post">
</fm:form>

修改controller层代码

model.addAttribute("user",user);
  1. password标签
<fm:password path="password">
  1. hidden标签
    生成隐藏域,界面上看不到任何内容
<fm:hidden path="hid">
  1. textarea标签
    支持多行输入的HTML元素
<fm:textarea path="remark" rows="5" col
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值