Java之Spring MVC中表单标签的简介说明

转自:

Java之Spring MVC中表单标签的简介说明

Spring MVC中表单标签的功能:将JSP页面渲染出相应的HTML元素,使浏览器可正常显示信息。

Spring MVC使用注意事项:
       JSP中Spring MVC标签需在头部使用taglib声明,如下所示:
      
<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

常见的Spring MVC如下所示:

名称作用
form渲染一个html表单元素
input渲染一个html <input type="text"/> 元素
password渲染一个html<input type="password"/> 元素
hidden渲染一个html<input type="hidden"/> 元素
textarea渲染一个htmltextarea 元素
checkbox渲染一个html<input type="checkbox"/> 元素
checkboxes渲染一个html<input type="checkbox"/> 元素
radiobutton渲染一个html<input type="radio"/> 元素
radiobuttons渲染一个html包含多个 <input type="radio"/> 元素
select渲染一个html select选择元素
option渲染一个html中select中选项元素
options渲染多个选项元素
errors在span元素中渲染字段错误

form表单标签

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

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

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

  1. acceptCharset:定义服务器接受的字符编码列表。
  2. commandName:暴露表单对象的模型属性名称,默认为 command。
  3. cssClass:定义应用到 form 元素的 CSS 类。
  4. cssStyle:定义应用到 form 元素的 CSS 样式。
  5. htmlEscape:true 或 false,表示是否进行 HTML 转义。
  6. 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

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


checkboxes 标签的语法格式如下:

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

如下:

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

上述示例代码是将 model 属性 chkList的内容(集合元素)渲染为复选框。
在 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标签一起使用

errors 标签

errors 标签渲染一个或者多个 span 元素,每个 span 元素包含一个错误消息。

 <form:errors path="*"/>

<form:errors path="xxx"/> 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值