下拉列表是Web表单中最常见的元素之一。 在HTML中,可以使用适当的标签创建此类控件: <form:select> –下拉列表的父标签和<form:option><form:select>标签的子标签。 Spring MVC标签库为下拉列表提供了自己的解决方案。 在这篇文章中,我将写关于<form:select><form:option><form:options>标签。

在以前的有关使用Spring MVC进行表单处理的文章中,我概述了需要将文本字段,复选框或单选按钮与Java对象绑定的情况。 对于select下拉列表元素,几乎将重复所有步骤。 此外,在使用Spring MVC标签库将其与java对象绑定的上下文中,我将通过下拉列表检查三种情况。 第一种情况是有关form:select标记,其值基于java.util.Map ,第二种情况是有关form:select标记与form:option标记结合使用的,第三种情况是有关form的用法:选择标记与form:options标记结合使用。

每个示例都将具有相同的结果jsp页面,因此只有表单页面和它们的控制器是不同的。 配置的设置将被省略,因为在上一篇文章中已对此进行了说明。

Spring MVC选择标签

假设Web应用程序的用户可以选择手机的生产商(例如HTC,SAMSUNG,IPHONE等)。 我们可以使用Spring MVC表单标签库以几种方式实现此目的。

域模型:

public class Smartphone {private String phone;public String getPhone() {return phone;}public void setPhone(String phone) {this.phone = phone;}}

此类将绑定到表单。

SmartphoneController:

...@RequestMapping(value="/phone-page")private ModelAndView selectTag() {ModelAndView mav = new ModelAndView("phone-form");Map< String, String > phones = new HashMap();phones.put("samsung", "SAMSUNG");phones.put("nokia", "NOKIA");phones.put("iphone", "IPHONE");mav.addObject("phonesMap", phones);mav.addObject("smartphone", new Smartphone());return mav;}@RequestMapping(value="/phone-result")private ModelAndView processPhone(@ModelAttribute Smartphone smartphone) {ModelAndView mav = new ModelAndView("phone-result");mav.addObject("smartphone", smartphone);       return mav;}
...

selectTag()方法中,我创建一个具有值的Map,这些值将在下拉菜单中显示在页面上。 第二种方法processPhone(@ModelAttribute Smartphone Smartphone,将用作所有示例的共享端点。

此示例的JSP:

<h1>Phone page</h1>
Select phone:
<form:form method="POST" commandname="smartphone" action="phone-result.html">
<table><tbody><tr><td><ul><form:select path="phone" items="${phonesMap}"></form:select></ul></td></tr><tr><td><input value="Submit" type="submit"></td></tr>
</tbody></table>
</form:form>

而已

Spring MVC选项标签

第二个示例将使用<form:option>标记的硬编码值。

控制器:

...@RequestMapping(value="/phone-option-page")private ModelAndView optionTag() {       return new ModelAndView("phone-option-form", "smartphone", new Smartphone());}
...

注意JSP:

<h1>Phone page</h1>
Select phone:
<form:form method="POST" commandname="smartphone" action="phone-result.html">
<table><tbody><tr><td><ul><form:select path="phone"><form:option value="samsung">SAMSUNG</form:option><form:option value="nokia">NOKIA</form:option><form:option selected="selected" value="htc">HTC</form:option><form:option value="iphone">IPHONE</form:option></form:select></ul></td></tr><tr><td><input value="Submit" type="submit"></td></tr>
</tbody></table>
</form:form>

Spring MVC选项标签

最后一个示例演示如何使用<form:options>标记。

控制器:

...@RequestMapping(value="/phone-options-page")private ModelAndView optionsTag() {ModelAndView mav = new ModelAndView("phone-options-form");Map< String, String > phones = new HashMap();phones.put("samsung", "SAMSUNG");phones.put("nokia", "NOKIA");phones.put("iphone", "IPHONE");phones.put("bberry", "BLACKBERRY");phones.put("htc", "HTC");mav.addObject("phonesMap", phones);mav.addObject("smartphone", new Smartphone());return mav;}
...

以及适当的JSP:

...
<h1>Phone page</h1>
Select phone:
<form:form method="POST" commandname="smartphone" action="phone-result.html">
<table><tbody><tr><td><ul><form:select path="phone"><form:option value="-" label="--Select phone"><form:options items="${phonesMap}"></form:options></form:option></form:select></ul></td></tr><tr><td><input value="Submit" type="submit"></td></tr>
</tbody></table>
</form:form>
...

如Spring官方文档中所指定的,您可以将任何类型的带有适当的getter和setter的java对象用于以下形式:options标签: items属性通常填充有item对象的集合或数组。 如果已指定,则itemValueitemLabel只是引用那些item对象的bean属性; 否则,item对象本身将被字符串化。 或者,您可以指定项目映射,在这种情况下,映射键将解释为选项值,并且映射值对应于选项标签。 如果恰好同时指定了itemValue和/或itemLabel ,则item value属性将应用于地图键,item label属性将应用于地图值。

摘要

这些示例中的每一个在特定情况下都是方便的,应合理使用。 <form:option>标记可以在不需要大量选项的小型项目中使用,当您在数据库中存储下拉列表的值或当您在数据库中存储下拉列表的值时,应使用<form:options>需要在运行时生成值。 您可以在GitHub上找到本教程的源代码。

参考: Spring MVC:表单处理卷。 5 – Fruzenshtein的便笺博客中的JCG合作伙伴 Alexey Zvolinskiy的select,option,options标签 。

翻译自: https://www.javacodegeeks.com/2013/07/spring-mvc-form-handling-vol-5-select-option-options-tags.html

Spring MVC:表单处理卷。 5 –选择,选项,选项标签相关推荐

  1. Spring MVC表单防重复提交

    转载自 Spring MVC表单防重复提交 利用Spring MVC的过滤器及token传递验证来实现表单防重复提交. 创建注解 @Target(ElementType.METHOD) @Retent ...

  2. Spring MVC表单验证(带批注)

    这篇文章提供了一个简单HTML表单验证示例. 它基于带有注释的Spring MVC示例. 该代码可在GitHub的Spring-MVC-Form-Validation目录中找到. 数据 在此示例中,我 ...

  3. SSM框架笔记14:Spring MVC表单验证

    Spring MVC表单验证   在Spring MVC中,表单验证有三种方法.   一.基本校验 这种方法是基于handler的,优点是定义方便,缺点是不便于复用. 1.两个接口:Errors/Bi ...

  4. Spring MVC表单教程

    本教程将展示如何在Spring MVC中处理表单提交. 我们将定义一个控制器来处理页面加载和表单提交. 您可以在GitHub上获取代码. 先决条件: 您应该有一个运行中的Spring MVC应用程序. ...

  5. Spring MVC表单验证

    看登录控制器代码: @RequestMapping(method=RequestMethod.POST,path="/login")public void login(@Valid ...

  6. Spring MVC表单实例

    以下内容引用自http://wiki.jikexueyuan.com/project/spring/mvc-framework/spring-mvc-form-handling-example.htm ...

  7. 一文学会 Spring MVC 表单标签

    ✅作者简介:2022年博客新星 第八.热爱国学的Java后端开发者,修心和技术同步精进.

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

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

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

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

最新文章

  1. Objective-C设计模式——生成器Builder(对象创建)
  2. hdu 1753大小数相加
  3. python脚本备份网络交换的命令
  4. 【GCN】图卷积网络(GCN)入门详解
  5. java高级知识点_JAVA高级阶段知识点汇总
  6. 使用GridSearchCV和RandomizedSearchCV进行超参数调整
  7. 战略模式并不意味着春天!
  8. VS集成Qt开发入门(简易时间显示)
  9. 睡眠音频分割及识别问题(八)--数据采集
  10. c语言趣味程序设计编程100例精解,c趣味编程100例
  11. 找单词(母函数问题)
  12. Vue框架里使用Swiper - 安装篇
  13. Spring MVC 基础笔记
  14. 转:Google的系统工程师(SA)如何工作
  15. python基础一 day17 二分查找算法
  16. node.js 将jade变为html
  17. 《爱的五种能力》读书笔记
  18. darts.h注释 - 滴水穿石 - 歪酷博客 Ycool Blog
  19. LINUX   LVM 硬盘管理及LVM的扩容
  20. 各种艺术字、图片在线制作

热门文章

  1. 机器学习评价指标大汇总
  2. java多态+多态中隐含的问题
  3. Mac 环境变量配置
  4. 767 重构字符串_重构字符串型系统
  5. java8根据某个id删选_Java 8可选
  6. maven与spring_与Spring和Maven签约首个SOAP服务
  7. web ua检测_UA Web挑战会议:针对初创公司的SpringIO
  8. javafx css颜色_JavaFX技巧7:使用CSS颜色常量/派生颜色
  9. javafx中css选择器_JavaFX技巧12:在CSS中定义图标
  10. avro文件导入到hive_XML到Avro的转换