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,一经查实,立即删除!

相关文章

vuex的命名空间有哪些_Vuex在vue路由器中访问命名空间模块的getter

我试图通过检查用户是否经过身份验证来保护我的路由&#xff0c;这是示例路由&#xff1a;{path: /intranet,component: search,meta: { requiresAuth: true },props: {tax: type,term: intranet-post,name: Intranet}},我正在这样设置警卫&#xff1a;router.beforeEach((to, …

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

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

使用sqlite3创建数据库表的时候须要注意

使用sqlite3创建数据库表的时候须要注意&#xff1a; 1. 不能使用纯数字 2. 不能带有"-",""等字符。也不能以数字打头。一、以下是log打出来的信息&#xff1a; DB Error: 1 "unrecognized token: "47464636265757265763393573649"" D…

物联网世界的承诺与挑战

最初参与到与物联网&#xff08;Internet of Things / IoT&#xff09;相关的行业对话时&#xff0c;我对整个行业的发展充满疑问。“ 物联网”和 “万联网”&#xff08;Internet of Everything&#xff09;有什么区别&#xff1f;这场变革现今是处于启蒙阶段&#xff0c;亦或…

音乐文件基本格式,wave,mod,midi,mp3,wma,flac

经典的WAVE WAVE文件作为最经典的Windows多媒体音频格式&#xff0c;应用非常广泛&#xff0c;它使用三个参数来表示声音&#xff1a;采样位数、采样频率和声道数。 声道有单声道和立体声之分&#xff0c;采样频率一般有11025Hz&#xff08;11kHz&#xff09;、22050Hz&#xf…

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

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

关于虚拟机栈的理解

虚拟机栈 虚拟机栈出现的背景 由于跨平台性的设计,Java的指令都是根据栈来设计的. 不同平台CPU架构不同,所以不能设置为基于寄存器的 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要更多的指令. 有不少Java开发人员一提到Java内存结构,就会非常粗…

抓取各个浏览器引擎关键字,,百度学术关键字

百度学术 $list_arr getbaiduxueshu($row[name]); $list_arr explode((,$list_arr); $list_arr explode(),$list_arr[1]); $list_arr json_decode($list_arr[0]); $list_arr $list_arr->s; //百度学术平台热词地址function getbaiduxueshu($keyname 100){ $url http:…

wave格式分析,wave音频文件格式分析配程序

wav文件格式分析详解 程序如上一篇博文 一、综述 WAVE文件作为多媒体中使用的声波文件格式之一&#xff0c;它是以RIFF格式为标准的。RIFF是英文Resource Interchange File Format的缩写&#xff0c;每个WAVE文件的头四个字节便是“RIFF”。 WAVE文件是由若干个Chunk组成…

poi设置word表格单元格宽度_java poi如何设置word的页面的大小和水平方向?

展开全部你好&#xff0c;试试以下代码行不行。packagecom.sample;importjava.awt.color;importjava.io.fileoutputstream;importjava.io.ioexception;importcom.lowagie.text.cell;importcom.lowagie.text.document;importcom.lowagie.text.documentexception;importcom.lowag…

时间通用方法

import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date;import org.apache.commons.lang3.time.DateFormatUtils;/** * 日期工具类, 继承org.apache.commons.lang.time.DateUtils类 */ public class DateUtils extends org.apache.commo…

Python-MongoDB的驱动安装、升级

安装pip&#xff0c;并通过此来安装pymongo–Python mongodb驱动 1、下载pip安装包&#xff0c;下载地址&#xff1a;http://pypi.python.org/packages/source/p/pip/pip-1.0.2.tar.gz#md547ec6ff3f6d962696fe08d4c8264ad49 2、解压安装&#xff1a; tar -zxf pip.1.0.2.tar.gz…

python5_python5

python2&python31.python2中print可加括号可不加括号&#xff0c;python3中print一定要加括号。2.python2中有range(),也有xrange(),python中只有range()。生成器。3.Python2中raw_input(),python3中input()。,,is赋值比较是否相等is 比较内存地址&#xff0c;id(内容)li1[…

单例设计模式1

单例 所谓单例设计模式,即时采取一定的方法保证在整个软件系统当中,对于某个类只能存在一个对象实例,并且该类只提供一个其对象实例的方法(静态方法) 恶汉式 优缺点说明: 优点:这种写法比较简单,就是在类装载的时候就完成实例化.避免了线程同步问题 缺点: 在类装载的时候就…

SJXXX串口扩展芯片 4串口芯片 UART串口芯片

SJXX串口扩展芯片1 概述SJ000是一款具备I2C总线/SPI总线/UART接口的四通道异步收发器件&#xff0c;通过模式选择使得该器件工作于以上任何一种主接口模式下。器件的四个通道UART可提供高达2Mbps的数据率&#xff0c;低功耗模式和睡眠电流。每个通道含有一个接收器和一个发送器…

MPLS服务合同到期了,是否该续签?

当考虑是否要更新现有MPLS服务合同以及续签多久时&#xff0c;你需要着眼于从价格到部署速度的方方面面。简而言之&#xff0c;如果你还没有获取一些与软件定义广域网有关技术的经验&#xff0c;即使用宽带或取代MPLS服务&#xff0c;那么你就没办法在未来几个月之内弃用MPLS。…

oracle rds 运维服务_从运维的角度分析使用阿里云数据库RDS的必要性–你不应该在阿里云上使用自建的MySQL/SQL Server/Oracle/PostgreSQL数据库...

开宗明义&#xff0c;你不应该在阿里云上使用自建的MySQL or SQL Server数据库&#xff0c;对了&#xff0c;还有Oracle or PostgreSQL数据库。云数据库 RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务。基于飞天分布式系统和全SSD盘高性能存储&…

单例设计模式2

恶汉式(静态代码块儿) 优缺点说明: 这种方式和上面的相似,只不过将类实例化的过程放在了静态代码块中,也是在类装载的时候,就执行静态代码块儿中的代码,初始化类的实例.优缺点和上面是一样的. 结论: 这种单例模式可用,可能 造成内存浪费 代码演示 package com.atguigu.pri…

FLV文件格式解析

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

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

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