表单标签库中包含了可以用在 JSP 页面中渲染 HTML 元素的标签。在 JSP 页面使用 Spring 表单标签库时,必须在 JSP 页面开头处声明 taglib 指令,指令代码如下:

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

在表单标签库中有 form、input、password、hidden、textarea、checkbox、checkboxes、radiobuttton、radiobuttons、select、option、options、errors 等标签。

表单标签

表单标签的语法格式如下:

<form:form modelAttribute="xxx" method="post" action="xxx">...
</form:form>

表单标签除了具有 HTML 表单元素属性以外,还具有 acceptCharset、commandName、cssClass、cssStyle、htmlEscape 和 modelAttribute 等属性。

  • acceptCharset:定义服务器接受的字符编码列表。
  • commandName:暴露表单对象的模型属性名称,默认为 command。
  • cssClass:定义应用到 form 元素的 CSS 类。
  • cssStyle:定义应用到 form 元素的 CSS 样式。
  • htmlEscape:true 或 false,表示是否进行 HTML 转义。
  • modelAttribute:暴露 form backing object 的模型属性名称,默认为 command。

其中,commandName 和 modelAttribute 属性的功能基本一致,属性值绑定一个 JavaBean 对象。假设控制器类 UserController 的方法 inputUser 是返回 userAdd.jsp 的请求处理方法,inputUser 方法的代码如下:

@RequestMapping(value="/input")
public String inputUser(Model model) {...model.addAttribute("user", new User());return "userAdd";
}

userAdd.jsp 的表单标签代码如下:

<form:form modelAttribute="user" method="post" action="user/save">...
</form:form>

注意:在 inputUser 方法中,如果没有 Model 属性 user,userAdd.jsp 页面就会抛出异常,因为表单标签无法找到在其 modelAttribute 属性中指定的form backing object。

input 标签

input 标签的语法格式如下:

<form:input path="xxx"/>

该标签除了有 cssClass、cssStyle、htmlEscape 属性以外,还有一个最重要的属性——path。path 属性将文本框输入值绑定到 form backing object 的一个属性。示例代码如下:

<form:form modelAttribute="user" method="post" action="user/save"><form:input path="userName"/>
</form:form>

上述代码将输入值绑定到 user 对象的 userName 属性。

password 标签

password 标签的语法格式如下:

<form:password path="xxx"/>

该标签与 input 标签的用法完全一致,这里不再赘述。

hidden 标签

hidden 标签的语法格式如下:

<form:hidden path="xxx"/>

该标签与 input 标签的用法基本一致,只不过它不可显示,不支持 cssClass 和 cssStyle 属性。

textarea 标签

textarea 基本上就是一个支持多行输入的 input 元素,语法格式如下:

<form:textarea path="xxx"/>

该标签与 input 标签的用法完全一致,这里不再赘述。

checkbox 标签

checkbox 标签的语法格式如下:

<form:checkbox path="xxx" value="xxx"/>

多个 path 相同的 checkbox 标签,它们是一个选项组,允许多选,选项值绑定到一个数组属性。示例代码如下:

<form:checkbox path="friends" value="张三"/>张三
<form:checkbox path="friends" value="李四"/>李四
<form:checkbox path="friends" value="王五"/>王五
<form:checkbox path="friends" value="赵六"/>赵六

上述示例代码中复选框的值绑定到一个字符串数组属性 friends(String[] friends)。该标签的其他用法与 input 标签基本一致,这里不再赘述。

checkboxes 标签

checkboxes 标签渲染多个复选框,是一个选项组,等价于多个 path 相同的 checkbox 标签。它有 3 个非常重要的属性,即 items、itemLabel 和itemValue。

  • items:用于生成 input 元素的 Collection、Map 或 Array。
  • itemLabel:items 属性中指定的集合对象的属性,为每个 input 元素提供 label。
  • itemValue:items 属性中指定的集合对象的属性,为每个 input 元素提供 value。

checkboxes 标签的语法格式如下:

<form:checkboxes items="xxx" path="xxx"/>

示例代码如下:

<form:checkboxes items="${hobbys}" path="hobby"/>

上述示例代码是将 model 属性 hobbys 的内容(集合元素)渲染为复选框。在 itemLabel 和 itemValue 省略的情况下,如果集合是数组,复选框的 label和 value 相同;如果是 Map 集合,复选框的 label 是 Map 的值(value),复选框的 value 是 Map 的关键字(key)。

radiobutton 标签

radiobutton 标签的语法格式如下:

<form:radiobutton path="xxx" value="xxx"/>

多个 path 相同的 radiobutton 标签,它们是一个选项组,只允许单选。

radiobuttons 标签

radiobuttons 标签渲染多个 radio,是一个选项组,等价于多个 path 相同的 radiobutton 标签。radiobuttons 标签的语法格式如一下:

<form:radiobuttons items="xxx" path="xxx"/>

该标签的 itemLabel 和 itemValue 属性与 checkboxes 标签的 itemLabel 和 itemValue 属性完全一样,但只允许单选。

select 标签

select 标签的选项可能来自其属性 items 指定的集合,或者来自一个嵌套的 option 标签或 options 标签。其语法格式如下:

<form:select path="xxx" items="xxx"/>

<form:select path="xxx" items="xxx"><option value="xxx">xxx</option>
</form:select>

<form:select path="xxx"><form:options items="xxx"/>
</form:select>

该标签的 itemLabel 和 itemValue 属性与 checkboxes 标签的 itemLabel 和 itemValue 属性完全一样。

options 标签

options 标签生成一个 select 标签的选项列表,因此需要和 select 标签一同使用,具体用法参见“select标签”。

errors 标签

errors 标签渲染一个或者多个 span 元素,每个 span 元素包含一个错误消息。它可以用于显示一个特定的错误消息,也可以显示所有错误消息。其语法格式如下:

<form:errors path="*"/>

<form:errors path="xxx"/>

其中,“*”表示显示所有错误消息;“xxx”表示显示由“xxx”指定的特定错误消息。

Spring MVC的表单标签库详解相关推荐

  1. 中input标签赋值_Java程序员:Spring MVC JSP表单标签示例

    Spring MVC的表单标签为Java程序员提供了许多额外的支持.例如数据绑定,允许自动设置数据并从Java对象中检索数据. 从2.0版本开始,Spring提供了一组全面的数据绑定感知标记,用于在使 ...

  2. Spring MVC JSP 表单标签教程

    在本教程中,我们将通过一个示例讨论所有与Spring MVC相关的JSP表单标签. 在本教程中,我们将使用下面重要的弹簧MVC表单标签进行讨论: 表单标签 文本字段标签 选择标签 复选框 无线电盒 密 ...

  3. Spring MVC之表单标签

    为什么80%的码农都做不了架构师?>>>    序言 Spring自2.0开始,就开始全面支持表单标签. 使用表单标签的优点有: 简单 支持Model自动绑定 一.表单标签开发步骤 ...

  4. java中form用法_SpringMVC表单标签使用详解

    在使用SpringMVC的时候我们可以使用Spring封装的一系列表单标签,这些标签都可以访问到ModelMap中的内容.下面将对这些标签一一介绍. 在正式介绍SpringMVC的表单标签之前,我们需 ...

  5. Spring MVC:表单处理卷。 5 –选择,选项,选项标签

    下拉列表是Web表单中最常见的元素之一. 在HTML中,可以使用适当的标签创建此类控件: <form:select> –下拉列表的父标签和<form:option> – < ...

  6. Spring MVC:表单处理卷。 4 –单选按钮

    在软件开发领域,单选按钮是图形用户界面的重要组成部分. Spring MVC标签库为此表单元素提供了特殊标签. 更确切地说,有两个标签用于此目的:单选按钮,单选按钮. 两者对于特定任务都是有用的. 如 ...

  7. Spring MVC:表单处理卷。 2 –复选框处理

    很难想象现代Web应用程序中没有表单复选框的情况. 在之前的一篇文章中,我写了有关Spring MVC中的表单处理的文章 ,作为本系列文章的续篇,我将写有关Spring MVC表单的文章,尤其是关于复 ...

  8. Spring MVC:表单处理卷。 3 –复选框处理

    我已经发布了有关使用Spring MVC标签库处理'checkbox'标签的帖子. 现在,我要开发此主题并继续使用"复选框"标签. 它并不难,但是在某些情况下,您最好使用它. 在本 ...

  9. Spring MVC:表单处理卷。 1个

    Spring MVC是Spring Framework的一部分,其主要目的是使Web开发更加简单,便捷和轻松. 与表单的交互是或多或少现代Web应用程序的一部分. Spring MVC允许您以非常严格 ...

最新文章

  1. SQL SERVER数据库中的数据类型 转
  2. github初次使用
  3. 文献学习(part89)--Diversity-induced Multi-view Subspace Clustering
  4. 测试框架 如何测试私有方法_高效的企业测试–测试框架(5/6)
  5. windows 下启动zookeeper的zkServer.cmd服务闪退
  6. 需求分析的图形工具(层次方框 warnier IPO)
  7. MongoDB小型文档型数据库使用
  8. 吴恩达深度学习之五《序列模型》学习笔记
  9. Shuffle Cards(Rope大法)将一段区间的数字整体搬动
  10. U盘文件变exe文件
  11. 互联网专家资源分享(二)
  12. ai条码插件免安装_AI条形码插件(含支持Illustrator cs6的条码脚本插件)
  13. 消息中间| JAVA消息中间件概述
  14. easyrecovery数据恢复软件免费版最新下载,以及磁盘数据怎么恢复
  15. 螺纹检测案例-螺距测量-大径小径检测-螺牙检测
  16. 素问之二四气调神大论篇
  17. 【小记】steam 神奇软件
  18. 关于Java RDP协议实现远程桌面连接的开源项目properjavardp
  19. 解决 白鹭引擎 egret 龙骨动画 Deprecated 已废弃
  20. 不等明天,今天就要有个新的开始

热门文章

  1. linux常用删除空文件夹,Linux基础 linux系统中的批量删除文件与空文件删除的命令介绍...
  2. 从vCenter 6.7升级到7.0
  3. Docker学习总结(54)——save,load,import 命令有何区别
  4. linux系统用w程序,Linux w命令
  5. Linux系统个性化设置
  6. 盘点我们最容易误解的30个英语句子
  7. Exchange 2007的自动发现
  8. forms角色验证,以普通用户身份登陆管理页面先弹出警告信息窗口
  9. java8(1)--- lambda
  10. MyEclipse项目无法自动编译解决方案