javascript
Spring MVC:表单处理卷。 3 –复选框处理
我已經(jīng)發(fā)布了有關(guān)使用Spring MVC標(biāo)簽庫處理'checkbox'標(biāo)簽的帖子。 現(xiàn)在,我要開發(fā)此主題并繼續(xù)使用“復(fù)選框”標(biāo)簽。 它并不難,但是在某些情況下,您最好使用它。 在本文中,我將結(jié)合java.util.List和java.util.Map提供Spring'checkboxes'標(biāo)記的示例,因此準(zhǔn)備研究?jī)蓚€(gè)示例。
 在開始演示示例之前,我想談?wù)劇皬?fù)選框”標(biāo)簽的用途。 那么什么時(shí)候應(yīng)該使用它呢? 如果要在運(yùn)行時(shí)中生成復(fù)選框,答案很明顯 
您必須使用“復(fù)選框”標(biāo)簽。 這將幫助您避免JSP中的硬編碼值。 'checkboxes'標(biāo)簽可以與數(shù)組和java.util.Collection一起使用。 進(jìn)一步,我將研究List和Map的兩種情況。 
列表和“復(fù)選框”標(biāo)簽
第一個(gè)示例將與列表一起使用。 與上一篇文章一樣,我必須創(chuàng)建一個(gè)POJO并使用適當(dāng)?shù)膅etter和setter方法在其中聲明所需的List屬性。
public class FootballTeams {private List teamsList;public List getTeamsList() { return teamsList; }public void setTeamsList(List teamsList) { this.teamsList = teamsList; }}創(chuàng)建域模型后,我應(yīng)該使用兩種方法開發(fā)控制器-一種用于在帶有復(fù)選框的頁面上導(dǎo)航,另一種用于處理復(fù)選框。
@Controller public class FootballController {@RequestMapping(value="/football-page") private ModelAndView footballPage() { ModelAndView mav = new ModelAndView("football-form");List teams = new ArrayList(); teams.add("Bavaria Munich"); teams.add("Borussia Dortmund"); teams.add("Real Madrid"); teams.add("Barcelona");mav.addObject("teamsList", teams); mav.addObject("footballTeams", new FootballTeams());return mav; }@RequestMapping(value="/football-result") private ModelAndView processTeams(@ModelAttribute FootballTeams footballTeams) { ModelAndView mav = new ModelAndView("football-result"); mav.addObject("footballTeams", footballTeams); return mav; }}請(qǐng)注意,在footballPage()方法中,我創(chuàng)建了球隊(duì)列表,然后將其添加到模型中。 第二種方法不包含任何特殊內(nèi)容,因此我不想考慮它。 現(xiàn)在,讓我們檢查一下視圖片段:
... <h1>Football page</h1> <form:form method="POST" commandname="footballTeams" action="football-result.html"> <table><tbody><tr><td> <ul> <form:checkboxes element="li" path="teamsList" items="${teamsList}"> </form:checkboxes></ul></td></tr><tr><td><input value="Submit" type="submit"></td></tr> </tbody></table> </form:form> ... 在這里,我需要暫停一下,并說明發(fā)生了什么。 在“復(fù)選框”標(biāo)簽中,我指定了路徑屬性。 該屬性的值對(duì)應(yīng)于FootballTeams類的適當(dāng)字段。 items屬性包含列表的值,該值是我在控制器的footballPage()方法中生成的。 
 最后一個(gè)視圖: 
在這里,我僅介紹上一頁中選擇的項(xiàng)目。 請(qǐng)注意,復(fù)選框的標(biāo)簽和值與列表中指定的相同。 如果要為一個(gè)復(fù)選框使用不同的值和標(biāo)簽,則必須使用java.util.Map。
地圖和“復(fù)選框”標(biāo)簽
第二個(gè)示例將與地圖一起使用。 因此,如您所愿,我將展示如何為相同的復(fù)選框使用不同的值和標(biāo)簽。 本節(jié)的結(jié)構(gòu)與上一部分相同,所以讓我們開始吧!
域模型:
public class Tourism {private List countries;public List getCountries() { return countries; }public void setCountries(List countries) { this.countries = countries; }}不要驚慌,您在課堂上沒有看到任何Map字段,稍后您將意識(shí)到這一點(diǎn)。
@Controller public class TourismController {@RequestMapping(value="/tourism-page") private ModelAndView tourismPage() { ModelAndView mav = new ModelAndView("tourism-form");Map countries = new HashMap(); countries.put("UKR", "Ukraine"); countries.put("ENG", "England"); countries.put("USA", "United States");mav.addObject("countriesMap", countries); mav.addObject("tourism", new Tourism());return mav; }@RequestMapping(value="/tourism-result") private ModelAndView processTourism(@ModelAttribute Tourism tourism) { ModelAndView mav = new ModelAndView("tourism-result"); mav.addObject("tourism", tourism); return mav; }}此處,在tourismPage()方法中,地圖出現(xiàn)在場(chǎng)景中。
... <h1>Tourism page</h1> <form:form method="POST" commandname="tourism" action="tourism-result.html"> <table><tbody><tr><td> <ul> <form:checkboxes element="li" path="countries" items="${countriesMap}"> </form:checkboxes></ul></td></tr><tr><td><input value="Submit" type="submit"></td></tr> </tbody></table> </form:form> ...Map的鍵將用作復(fù)選框的值,而Map的值將用作復(fù)選框的標(biāo)簽。
... <h1>Tourism result page</h1> Selected countries: <br> <c:foreach var="country" items="${tourism.countries}"> ${country}<br> </c:foreach> ...現(xiàn)在該解釋一下,為什么“旅游”課程中沒有“地圖”字段。 如您所見,結(jié)果頁面上僅顯示Map的鍵。 因此,鍵值對(duì)不會(huì)傳遞給模型。
摘要
 在本教程中,您可以得出結(jié)論,“ checkboxes”標(biāo)記更適合使用。 Spring MVC是一個(gè)非常靈活的框架,它為某些任務(wù)提供了某些工具。 根據(jù)目標(biāo)使用地圖或列表。 您可以在GitHub上查看源代碼。 
翻譯自: https://www.javacodegeeks.com/2013/05/spring-mvc-form-handling-vol-3-checkboxes-processing.html
總結(jié)
以上是生活随笔為你收集整理的Spring MVC:表单处理卷。 3 –复选框处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
                            
                        - 上一篇: (linux $date)
 - 下一篇: 简易征收备案需要什么资料和手续(简易征收