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.pswp.cn/news/455161.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/455161.shtml
英文地址,請注明出處:http://en.pswp.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;華院數據創始人、董事長宣曉華談了傳統零售商在轉型過程中遭遇的…