SpringMVC之表单标签

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

SpringMVC提供了form 标签,一般情况下,通过 GET 请求获取表单页面,而通过 POST 请求提交表单页面,因此获取表单页面和提交表单页面的 URL 是相同的。只要满足该最佳条件的契约,form:form 标签就无需通过 action 属性指定表单提交的 URL。

准备了一个Book的bean,其属性为bookName、author、price

表单标签的使用

1、在jsp页面导入form标签的taglib

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

2.在index.jsp页面中使用form标签

<!-- modelAttribute=""1)、默认情况下我们表单标签会从请求域中获取一个command对象;把这个对象中的每一个属性对应的显示出来
		2)、可以告诉SpringMVC不要去取command的值了,我放了一个modelAttribute指定的值;
			取对象用的key就用我modelAttribute指定的; -->
<form:form action="test" method="post" modelAttribute="book">
<!-- 	path指定的是一个属性;这个属性是从隐含模型(请求域中取出的某个对象中的属性);
		path指定的每一个属性,请求域中必须有一个对象,拥有这个属性;
		path就是原先表单元素中的name项:需要写
		path:
			1)当做原生的name项
			2)自动回显隐含模型中某个对象对应的这个属性的值
	  -->
	bookName:<form:input path="bookName"/><br/><br/>
	author:<form:input path="author"/> <br/><br/>
	price:<form:input path="price"/><br><br>
	<input type="submit" value="submit">	
</form:form>

解决在访问index.jsp页面时请求域中没有modelAttribute指定的对象
通过页面跳转的方式太到index.jsp,在controller控制器层,使用@ModelAttribute,现在请求域中放一个modelAttribute指定的对象,在跳转到index.jsp页面
代码如下:

@ModelAttribute
	public void property(Model model) {
		Book book = new Book("aaa","bbb",123);
		model.addAttribute("book", book);
	}
	
	@RequestMapping("/toIndex")
	public String toIndex() {
		
		return "forward:index.jsp";
	}
	
	@RequestMapping("/test")
	public String test() {
		
		return "success";
	}

跳转成功后页面为:
在这里插入图片描述
如此一来,方便了我们对数据的回显。
如果在请求域中加一个部门集合的对象,key为:deps,Department类为自定义的类,代码如下:

Collection<Department> deps = departmentDao.getDepartments();
		model.addAttribute("deps",deps);

则使用SpringMVC提供的表单元素可以实现下拉框选择部门,代码如下:

department:
	<!-- 
		items="":指定要遍历的集合;自动遍历,遍历出来的每一个元素都是放进集合中的对象
		itemLabel="属性名":指定遍历出来的对象的那个属性作为option标签体的值
		itemValue="属性名":指定遍历出来的对象的那个属性作为要提交的value值
	 -->
		<form:select path="department.id"
		items="${deps}" itemLabel="departmentName" itemValue="id"
		></form:select>

SpringMVC提供的表单标签,大致有如下:

form:input、form:password、form:hidden

form:textarea:对应 HTML 表单的 text、password、hidden、textarea 标签

form:radiobutton:单选框组件标签,当表单 bean 对应的属性值和 value 值相等时,单选框被选中

form:radiobuttons:单选框组标签,用于构造多个单选框
        -items:可以是一个 List、String[] 或 Map
        -itemValue:指定 radio 的 value 值。可以是集合中 bean 的一个属性值
        -itemLabel:指定 radio 的 label 值
        -delimiter:多个单选框可以通过 delimiter 指定分隔符

form:checkbox:复选框组件。用于构造单个复选框

form:checkboxs:用于构造多个复选框。使用方式同 form:radiobuttons 标签

form:select:用于构造下拉框组件。使用方式同 form:radiobuttons 标签

form:option:下拉框选项组件标签。使用方式同 form:radiobuttons 标签

form:errors:显示表单组件或数据校验所对应的错误
<form:errors path= “ ” /> :显示表单所有的错误
<form:errors path= “ user
” /> :显示所有以 user 为前缀的属性对应的错误
<form:errors path= “ username” /> :显示特定表单对象属性的错误
这个标签在校验的博客中会使用

如上,便是SpringMVC提供的表单标签的使用,如有错误,欢迎指正。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值