spring-mvc - 标签库 - form标签库

Spring提供了form标签库,主要完成如下功能

  • 渲染Model对象到表单 - 可以绑定一个Model对象,当Model名称变化,不需要到处修改绑定的Model名称
  • 显示错误

🌹 form标签库 - 作用

没用form标签库之前,我需要如下渲染

<form >
 	 <input type="hidden" name="id" value="${adDto.id}">
     <input type="hidden" name="imgFileName" value="${adDto.imgFileName}">
     <input type="hidden" name="imgUrl" value="${adDto.imgUrl}">
</form>

adDto名称变成ad,我需要修改全部adDto成ad

使用form标签库,我只需修改一处

<form:form commandName="adDto">
	<form:input path="id" id="id" name="title" type="hidden"/>
	<form:input path="imgFileName" id="imgFileName" name="title" type="hidden"/>
	<form:input path="imgUrl" id="imgUrl" name="title" type="hidden"/>
</form:form>

🌷 引入form标签库 - 使用Taglib指令引入

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

🌻 form标签 - 绑定对象、渲染表单

form标签的作用就是为了方便绑定到Model

标签如下

标签作用属性
<form:form>渲染成formcommand - 来绑定Model
<form:input>渲染成inputpath - 绑定Model的属性,path会渲染成id和name

除了上面,还有<form:check><form:password>等很多标签,没必要记。用的时候,直接当成input指定type就好,如下

<form:input path="priority" type="password"/>

而不是记住<input:password>

<form:password path="priority"/>

🌼 error标签 - 显示BindingResult中错误

🌺 error标签 - 原理和介绍

  • 如果使用jsr-303验证,验证错误会在BindingResult中。
  • BindingResult会自动放到Model中,key是BindingResult.MODEL_KEY_PREFIX + 参数名称
  • <form:errors>会在BindingResult.MODEL_KEY_PREFIX取出错误
/*
* BindingResult在Model中的 key= BindingResult.MODEL_KEY_PREFIX + adDto
* 等于如下 
* model.put(BindingResult.MODEL_KEY_PREFIX + 'adDto',bindingResult)
*/
@PutMapping("/edit")
public String adEdit(@Validated AdDto adDto, BindingResult bindingResult)

error标签有如下属性

属性解释
path哪个field的错误,*是所有错误
cssClass错误样式

🌸 error标签 - 显示所有错误

<form:errors path="enabled" cssClass="error" />

🍁 error标签 - 显示指定错误

<form:errors path="*" cssClass="error" />

🍖 参考

🦴 springmvc-详细说明form标签库

🦴 Spring - 如何将BindingResult添加到新创建的模型属性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值