Spring MVC-表单(Form)标签-下拉框(Dropdown)示例(转载实践)

以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_dropdown.htm

说明:示例基于Spring MVC 4.1.6

以下示例显示如何使用Spring Web MVC框架在表单中使用Dropdown。首先,让我们使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态窗体的Web应用程序:

步骤描述
1创建一个名为HelloWeb的项目,在一个包com.tutorialspoint下,如Spring MVC - Hello World Example章节所述。
2在com.tutorialspoint包下创建一个Java类User,UserController。
3在jsp子文件夹下创建一个视图文件user.jsp,users.jsp。
4最后一步是创建所有源和配置文件的内容并导出应用程序,如下所述。

User.java

package com.tutorialspoint;public class User {private String username;private String password;private String address;private boolean receivePaper;private String [] favoriteFrameworks;   private String gender;private String favoriteNumber;private String country;public String getUsername() {return username;}public void setUsername(String username) {this.username = username;}public String getPassword() {return password;}public void setPassword(String password) {this.password = password;}public String getAddress() {return address;}public void setAddress(String address) {this.address = address;}public boolean isReceivePaper() {return receivePaper;}public void setReceivePaper(boolean receivePaper) {this.receivePaper = receivePaper;}public String[] getFavoriteFrameworks() {return favoriteFrameworks;}public void setFavoriteFrameworks(String[] favoriteFrameworks) {this.favoriteFrameworks = favoriteFrameworks;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}public String getFavoriteNumber() {return favoriteNumber;}public void setFavoriteNumber(String favoriteNumber) {this.favoriteNumber = favoriteNumber;}public String getCountry() {return country;}public void setCountry(String country) {this.country = country;}
}

UserController.java

package com.tutorialspoint;import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.ui.ModelMap;@Controller
public class UserController {@RequestMapping(value = "/user", method = RequestMethod.GET)public ModelAndView user() {User user = new User();      user.setFavoriteFrameworks((new String []{"Spring MVC","Struts 2"}));user.setGender("M");ModelAndView modelAndView = new ModelAndView("user", "command", user);return modelAndView;}@RequestMapping(value = "/addUser", method = RequestMethod.POST)public String addUser(@ModelAttribute("SpringWeb")User user, ModelMap model) {model.addAttribute("username", user.getUsername());model.addAttribute("password", user.getPassword());model.addAttribute("address", user.getAddress());model.addAttribute("receivePaper", user.isReceivePaper());model.addAttribute("favoriteFrameworks", user.getFavoriteFrameworks());model.addAttribute("gender", user.getGender());model.addAttribute("favoriteNumber", user.getFavoriteNumber());model.addAttribute("country", user.getCountry());     return "users";}@ModelAttribute("webFrameworkList")public List<String> getWebFrameworkList(){List<String> webFrameworkList = new ArrayList<String>();webFrameworkList.add("Spring MVC");webFrameworkList.add("Struts 1");webFrameworkList.add("Struts 2");webFrameworkList.add("Apache Wicket");return webFrameworkList;}@ModelAttribute("numbersList")public List<String> getNumbersList(){List<String> numbersList = new ArrayList<String>();numbersList.add("1");numbersList.add("2");numbersList.add("3");numbersList.add("4");return numbersList;}@ModelAttribute("countryList")public Map<String, String> getCountryList(){Map<String, String> countryList = new HashMap<String, String>();countryList.put("US", "United States");countryList.put("CH", "China");countryList.put("SG", "Singapore");countryList.put("MY", "Malaysia");return countryList;}
}

这里第一个服务方法user(),我们已经通过名为“command”的ModelAndView对象中传递了一个空的User对象,因为如果您在JSP中使用<form:form>标签,Spring框架将期望一个名为“command”的对象文件。所以当user()方法被调用时,它返回user.jsp视图。

将在HelloWeb/addUser URL上针对POST方法调用第二个服务方法addUser()。您将根据提交的信息准备您的模型对象。最后,将从服务方法返回“user”视图,这将导致渲染users.jsp

user.jsp

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head><title>Spring MVC Form Handling</title>
</head>
<body><h2>User Information</h2>
<form:form method="POST" action="/HelloWeb/addUser"><table><tr><td><form:label path="username">User Name</form:label></td><td><form:input path="username" /></td></tr><tr><td><form:label path="password">Age</form:label></td><td><form:password path="password" /></td></tr>  <tr><td><form:label path="address">Address</form:label></td><td><form:textarea path="address" rows="5" cols="30" /></td></tr>  <tr><td><form:label path="receivePaper">Subscribe Newsletter</form:label></td><td><form:checkbox path="receivePaper" /></td></tr> <tr><td><form:label path="favoriteFrameworks">Favorite Web Frameworks</form:label></td><td><form:checkboxes items="${webFrameworkList}" path="favoriteFrameworks" /></td>       </tr><tr><td><form:label path="gender">Gender</form:label></td><td><form:radiobutton path="gender" value="M" label="Male" /><form:radiobutton path="gender" value="F" label="Female" /></td></tr><tr><td><form:label path="favoriteNumber">Favorite Number</form:label></td><td><form:radiobuttons path="favoriteNumber" items="${numbersList}" />            </td></tr><tr><td><form:label path="country">Country</form:label></td><td><form:select path="country"><form:option value="NONE" label="Select"/><form:options items="${countryList}" /></form:select>         </td></tr>         <tr><td colspan="2"><input type="submit" value="Submit"/></td></tr></table>  
</form:form>
</body>
</html>

这里我们使用<form:select /><form:option /><form:options />标签来呈现HTML选择。例如

<form:select path="country"><form:option value="NONE" label="Select"/><form:options items="${countryList}" />
</form:select>

它将呈现以下HTML内容。

<select id="country" name="country"><option value="NONE">Select</option><option value="US">United States</option><option value="CH">China</option><option value="MY">Malaysia</option><option value="SG">Singapore</option>
</select>

users.jsp

<%@taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
<html>
<head><title>Spring MVC Form Handling</title>
</head>
<body><h2>Submitted User Information</h2><table><tr><td>Username</td><td>${username}</td></tr><tr><td>Password</td><td>${password}</td></tr>    <tr><td>Address</td><td>${address}</td></tr>  <tr><td>Subscribed to Newsletter</td><td>${receivePaper}</td></tr>    <tr><td>Favorite Web Frameworks</td><td> <% String[] favoriteFrameworks = (String[])request.getAttribute("favoriteFrameworks");for(String framework: favoriteFrameworks) {out.println(framework);}%></td></tr>          <tr><td>Gender</td><td>${(gender=="M"? "Male" : "Female")}</td></tr><tr><td>Favourite Number</td><td>${favoriteNumber}</td></tr>   <tr><td>Country</td><td>${country}</td></tr>         </table>  
</body>
</html>

完成创建源文件和配置文件后,导出应用程序。右键单击应用程序并使用Export->WAR File选项,并将您的HelloWeb.war文件保存在Tomcat的webapps文件夹中。

现在启动您的Tomcat服务器,并确保您可以使用标准浏览器从webapps文件夹访问其他网页。现在尝试URL http://localhost:8080/HelloWeb/user,如果您的Spring Web应用程序的一切都很好,您应该会看到以下结果:

提交所需信息后,点击提交按钮提交表单。如果您的Spring Web应用程序的一切都很好,您应该会看到以下结果:

Maven示例:

https://github.com/easonjim/5_java_example/tree/master/springmvc/tutorialspoint/test11

==>如有问题,请联系我:easonjim#163.com,或者下方发表评论。<==

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/455161.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

阿里巴巴中文站架构设计实践(何崚)图书

阿里巴巴中文站架构实践 何崚阿里巴巴 全文地址:阿里巴巴中文站架构设计实践(何崚).pdf 更多课件可到:这里查看 后续内容还在更新…

bilibili go框架_最好的开发语言一定是那位吗?Go语言有话说

鲁迅先生说过&#xff0c;所有能用 JS 写的前端项目最终都会被用 JS 重写一遍&#xff0c;所有能用 Go 写的后端项目最终也都会被用 Go 重写一遍。作为一名开发者&#xff0c;周六的我们能做什么呢&#xff1f;是因为产品经理的各种需求在加班吗&#xff1f;给你说了实现不了实…

FLV文件格式解析

FLV&#xff08;Flash Video&#xff09;是现在非常流行的流媒体格式&#xff0c;由于其视频文件体积轻巧、封装播放简单等特点&#xff0c;使其很适合在网络上进行应用&#xff0c;目前主流的视频网站无一例外地使用了FLV格式。另外由于当前浏览器与Flash Player紧密的结合&am…

华院数据宣晓华:传统零售商转型电商需攻克大数据三关

现在电商发展起来的节奏&#xff0c;使得大众更相信马云所言“五年内将没有线下销售”的可信度。面对这样的转变最该紧张的似乎是传统零售商了&#xff0c;日前在中美创新链接——大数据专题研讨会上&#xff0c;华院数据创始人、董事长宣晓华谈了传统零售商在转型过程中遭遇的…

部署到gcp_GCP 网络系统Andromeda --- 概述篇

这个系列总共有三篇&#xff0c;分别在&#xff1a;肖宏辉&#xff1a;GCP 网络系统Andromeda --- 概述篇肖宏辉&#xff1a;GCP 网络系统Andromeda --- 控制面肖宏辉&#xff1a;GCP 网络系统Andromeda --- 数据面最近看了Google在2018年的一篇NSDI文章&#xff0c;介绍他们的…

AMR音频编码器概述及文件格式分析

全称Adaptive Multi-Rate&#xff0c;自适应多速率编码&#xff0c;主要用于移动设备的音频&#xff0c;压缩比比较大&#xff0c;但相对其他的压缩格式质量比较差&#xff0c;由于多用于人声&#xff0c;通话&#xff0c;效果还是很不错的。 一、分类 1. AMR: 又称为AMR-NB&am…

同余定理证明

转载于:https://www.cnblogs.com/cmyg/p/7206474.html

symbian系统开发教程(一)

第一章&#xff1a;Symbian OS简介作者&#xff1a;谢兴 enigma19971hotmail.com---转载需注明出处 下载word文档1.1. Symbian系统简介当前有很多手机运行Symbian OS&#xff0c;数量甚至超出您的想象。到目前为止已经有超过7500 万、100 多种型号的手机运行Sym…

学习的动力

要有自学的意识&#xff0c;这是一个知识不断更新、不断涌现的时代&#xff0c;大学里的很多知识是过时的&#xff0c;就算入校时是热门行业的但很可能四年后毕业找工作时已经变成了夕阳产业&#xff0c;学习是一种能力&#xff0c;但首先是一种态度&#xff0c;一个人想在快速…

H264基本概念之 宏块、片和片组

这几个概念对比音频信号处理可是全新的&#xff0c;下面简要介绍一下定义和作用&#xff1a; 1、宏块&#xff08;Macro Block&#xff09;&#xff1a;一个编码图像首先要划分成多个块&#xff08;4x4 像素&#xff09;才能进行处理&#xff0c;显然宏块应该是整数个块组成&…

CodeVS 1044 拦截导弹(DP)

题目大意&#xff1a; http://codevs.cn/problem/1044/ 第一问题就是求序列的最长递减数列的长度&#xff0c;第二问就是求数列的最长递增序列的长度。 代码&#xff1a; #include <iostream>using namespace std;int arr[30] {0}; int dp[30] {0}; int mp[30] {0};in…

链表(Linked List)之单链表

原文地址:传送门 链表(Linked List)介绍 链表是有序的列表&#xff0c;但是它在内存中是存储如下 小结: 链表是以节点的方式来存储,是链式存储 每个节点包含 data 域&#xff0c; next 域&#xff1a;指向下一个节点. 如图&#xff1a;发现链表的各个节点不一定是连续存储…

链表(Linked List)之双向链表

双向链表应用实例 使用带head头的双向链表实现 –水浒英雄排行榜 管理单向链表的缺点分析: 单向链表&#xff0c;查找的方向只能是一个方向&#xff0c;而双向链表可以向前或者向后查找。 单向链表不能自我删除&#xff0c;需要靠辅助节点 &#xff0c;而双向链表&#xff…

H264 解码耗时分析

在数字基带处理器上代码的最佳放置 美国模拟器件公司 Jose Fridman   在手机等嵌入式系统中&#xff0c;除了处理器执行时间外&#xff0c;最重要的资源就是设备总线和存储器接口。本文将介绍一种在使用指令高速缓存时其带宽消耗的基础上&#xff0c;统计分析高速缓存所采用…

链表(Linked List)之环形链表

原文地址:传送门 单向环形链表应用场景 Josephu(约瑟夫、约瑟夫环) 问题 Josephu 问题为&#xff1a;设编号为1&#xff0c;2&#xff0c;… n的n个人围坐一圈&#xff0c;约定编号为k&#xff08;1<k<n&#xff09;的人从1开始报数&#xff0c;数到m 的那个人出列&…

免费SSL证书(支持1.0、1.1、1.2)

由于公司要开发微信小程序&#xff0c;而微信小程序的接口需要https协议的&#xff0c;并且要支持TLS1.0、TLS1.1、TLS1.2。如果仅仅是为了开发小程序&#xff0c;安全等级又不用太高&#xff0c;可以选择免费的SSL证书 在这里选择腾讯云的证书&#xff0c;申请在 https://cons…

使用栈来完成一个表达式的结果

原文地址:传送门 使用栈来完成一个表达式的结果 使用栈完成计算 一个表达式的结果 7*2*2-51-53-4 &#xff1f; 32*6-2[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XzPnJzRe-1614845779689)(https://victorfengming.gitee.io/data_algorithm/i…

Python 关于bytes类方法对数字转换的误区, Json的重要性

本文起源于一次犯错, 在发觉bytes()里面可以填数字, 转出来的也是bytes类型, 就心急把里面的东西decode出来. 结果为空.搞来搞去以为是命令不熟练事实上错在逻辑.a1 bytes(11, encodingutf-8) print(a1)b1 a1.decode()print(b1)a2 bytes(11) print(a2)b2 a2.decode() print…

psnr 计算

PSNR是“Peak Signal to Noise Ratio”的缩写&#xff0c;峰值信噪比。psnr一般是用于最大值信号和背景噪音之间的一个工程项目。 PSNR计算公式如下&#xff1a; 8bits表示法中&#xff0c;peak的最大值为255&#xff1b;MSE指Mean Square Error&#xff08;均方误差&#xff0…

光源时间_缩短背光源的使用寿命的原因

许多场所都会使用到led这种产品&#xff0c;这种产品经常用于背光的照亮中。但是由于使用led的局限性较大&#xff0c;所以led逐渐被背光源这种产品所代替&#xff0c;常常用于背景的照亮让宣传图可以展现出更好的视觉&#xff0c;这也是许多人选择背光源的原因。那么&#xff…