欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

一篇文章帶你學(xué)會(huì)Spring?MVC表單標(biāo)簽

 更新時(shí)間:2023年03月24日 11:48:49   作者:Java?Fans  
Spring MVC表單標(biāo)簽是網(wǎng)頁的可配置和可重復(fù)使用的構(gòu)建塊,下面這篇文章主要給大家介紹了如何通過一篇文章學(xué)會(huì)Spring?MVC表單標(biāo)簽的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

使用Spring MVC提供的表單標(biāo)簽可以讓JSP視圖方便展示地Model中的數(shù)據(jù),特別適合修改現(xiàn)有記錄數(shù)據(jù)的情形,通常進(jìn)行修改操作時(shí),原有數(shù)據(jù)要先展示出來,再供用戶重新選擇或修改。使用表單標(biāo)簽?zāi)軐?shí)現(xiàn)數(shù)據(jù)綁定,讓表單中的各個(gè)表單域中的name屬性綁定到對(duì)象模型中來。JSP頁面中要想使用SpringMVC自帶標(biāo)簽庫(kù),需要導(dǎo)入標(biāo)簽庫(kù),在JSP文件開頭聲明如下:

<%@ taglib prefix="form" uri="http://www.springframework.org/tags/form" %> 

Spring的form標(biāo)簽?zāi)軌蜃詣?dòng)綁定來自Model中的一個(gè)屬性值到當(dāng)前form對(duì)應(yīng)的實(shí)體對(duì)象,默認(rèn)是command屬性(可以通過ModelAttribute重寫默認(rèn)屬性),這樣就可以在form表單體里面方便的使用該對(duì)象的屬性。Form標(biāo)簽下面又包含input,password,select/option/options,checkbox/checkboxs,radiobutton,radiobuttons等等子標(biāo)簽。這些標(biāo)簽的基本介紹如下圖所示。

form 標(biāo)簽

form 標(biāo)簽主要包括下表所示的多個(gè)屬性

@RequestMapping("detail/{id}")
public ModelAndView detail (@PathVariable int id){
	User myuser=userService.getUserById(id);
	ModelAndView mv=new ModelAndView();
	mv.addObject("user",myuser);
	System.out.println(userService..getUserById(id).getUsername());
	mv.setViewName("detail");
	return mv;
}

該代碼表示接收到 id 后,調(diào)用業(yè)務(wù)層,獲取到該 id 號(hào)的 User 類的用戶對(duì)象 myuser,然后將 myuser 對(duì)象封裝添加到 ModelAndView 中來,鍵為“user”,值為myuser 對(duì)象,這樣這個(gè)模型舊風(fēng)裝好了屬性名稱為 user 的鍵值對(duì)(值為 myuser)。然后進(jìn)入 JSP 頁面,form 表單利用 commandName 與 modelAttribute 指定該模型的“user”屬性名,就可綁定該模型屬性的值(即 User 類的myuser 對(duì)象),并把該模型屬性的值 myuser 對(duì)象中的各個(gè)屬性與 form 表單的各個(gè)子標(biāo)簽一一綁定。Form 表單中應(yīng)用 commandName 綁定模型屬性名稱示例代碼如下:

<form:form action="update" method="post" commandName="user">
//省略紙標(biāo)簽
</form:form>

這樣就把后臺(tái)控制器方法中創(chuàng)建的對(duì)象傳遞過來在前臺(tái)展示了。

input 標(biāo)簽

input標(biāo)簽,用于展示控制器方法中封裝的基本類型的Model數(shù)據(jù)。語法如下:

<form:input path="domain的屬性名">

其中path用于指定要綁定的屬性,比如上面案例中,表單中指定了要綁定的對(duì)象為User類的myuser,但要在表單中具體顯示該對(duì)象的用戶名username還需要這樣做:

<form:form action="update" method="post" commandName="user">
	<form:input path="username"/>
</form:form>

這樣在表單綁定myuser對(duì)象的基礎(chǔ)上,進(jìn)一步把該對(duì)象的username屬性綁定到文本輸入框中來。

password 標(biāo)簽

password標(biāo)簽,用于填寫密碼,有掩碼。語法如下:

<form:password path="domain的屬性名"/>

其path屬性含義同上。上例中,若還要展示用戶的密碼,則代碼如下所示:

<form:form action="update" method="post" commandName="user">
	<form:input path="username"/></br>
	<form:password path="password"/></br>
</form:form>

checkbox 標(biāo)簽

該標(biāo)簽的屬性基本與input相同,但另有一個(gè)label屬性用于指定顯示的得選框的值。

<form:checkbox path="domain的屬性名" label="復(fù)選框的值">

如果該屬性名存在,則默認(rèn)已經(jīng)選上。前臺(tái)關(guān)鍵代碼如下:

	myInteresting=new ArrayList<String>();
	myInteresting.add("美食");
	myInteresting.add("音樂");	

前臺(tái)關(guān)鍵代碼如下,則顯示效果如圖7.1所示。

	<form:checkbox path="myInteresting" value="舞蹈" label="舞蹈"/>
    <form:checkbox path="myInteresting" value="旅游" label="旅游"/>
    <form:checkbox path="myInteresting" value="唱歌" label="唱歌"/>
    <form:checkbox path="myInteresting" value="音樂" label="音樂"/>
    <form:checkbox path="myInteresting" value="運(yùn)動(dòng)" label="運(yùn)動(dòng)"/>
    <form:checkbox path="myInteresting" value="美食" label="美食"/>

顯示效果如圖所示:

checkboxes 標(biāo)簽

checkboxes的基本語法如下:

<form:checkboxes items="${Model中Collections的屬性}" path="domain的屬性名"/>

checkboxes有幾個(gè)重要屬性如下表所示。

假定后臺(tái)控制器方法中設(shè)置了一個(gè)集合allIntersting,用于描述興趣愛好,其中包含了所有的興趣愛好:旅游,音樂,唱歌,跳舞,運(yùn)動(dòng),美食。但某一個(gè)人的興趣可能只有其中若干項(xiàng),所以再定義一個(gè)集合myIntesting,只含部分興趣愛好。前臺(tái)form表單需要把所有興趣愛好以多選項(xiàng)的形式列出來,對(duì)某一個(gè)人有的興趣愛好則打上勾。后臺(tái)代碼如下:

	@RequestMapping("/detail/{id}")
	public ModelAndView detail(@PathVariable int id){		
		List<String> allInteresting=new ArrayList<String>();
		allInteresting.add("舞蹈");
		allInteresting.add("旅游");
		allInteresting.add("唱歌");
		allInteresting.add("音樂");
		allInteresting.add("運(yùn)動(dòng)");
		allInteresting.add("美食");
		
		UserService userService=new UserService();		
		User user=userService.getUserById(id);
		List<String> myInteresting=new ArrayList<String>();
		myInteresting.add("旅游");
		myInteresting.add("音樂");
        user.setMyInteresting(myInteresting);
		ModelAndView mv=new ModelAndView();
		mv.addObject("allInteresting", allInteresting);
		mv.addObject("user", user);
		mv.setViewName("detail");
		return mv;

}

前臺(tái)關(guān)鍵代碼如下:

<form:checkboxes path="myInteresting" items="${allInteresting}"/>

最終結(jié)果如圖所示:

對(duì)于Map類型的Collection來說,key值為標(biāo)簽的value值,value值為標(biāo)簽的label值,但是需要注意HashMap是亂序的

radiobutton 與 radiobuttons 標(biāo)簽

Radiobutton的語法如下:

<form:radiobutton path="domain屬性名" label=”顯示的值” value=”值”/>

通常有多個(gè),然后若后臺(tái)傳來的domain屬性名的值跟其中一個(gè)value的值相同,則為選中。

Radiobuttons的語法如下:

<form:radiobuttons path="domain屬性值" items="${傳入的Collection}"/>

其規(guī)則同checkboxes。如果后臺(tái)傳來的的domain屬性名的值跟items集合中的其中一個(gè)value的值相同,則為選中。后臺(tái)代碼:

@RequestMapping("/detail/{id}")
	public ModelAndView detail(@PathVariable int id){		
		List<String> cities=new ArrayList<String>();
		cities.add("北京");
		cities.add("上海");
		cities.add("廣州");
		cities.add("深圳");
		String city="深圳";
		UserService userService=new UserService();		
		User user=userService.getUserById(id);
        user.setCity(city);
		user.setGender(true);
		ModelAndView mv=new ModelAndView();
		mv.addObject("cities", cities);
		mv.addObject("user", user);
		mv.setViewName("detail");
		return mv;
}

前臺(tái)代碼如下:

		<tr>  
            <td>性別:</td>
            <td>
            	<form:radiobutton path="gender" value="true" label="男"/>
                <form:radiobutton path="gender" value="false" label="女"/>  
            </td>  
        </tr>
		<tr>  
            <td>所在城市1</td>
            <td>
            	<form:radiobuttons path="city" items="${cities}"/><br/>   		
            </td>  
        </tr>

最終結(jié)果如圖所示:

select 與 option/options 標(biāo)簽

語法格式如下:

<form:select path="domain的屬性名">
<form:option value=”值”>顯示的值</option>
    <form:options items="${Collections變量}"/>
</form:select>

其中items的使用同前。

前臺(tái)代碼同前,后臺(tái)代碼如下:

		<tr>  
            <td>所在城市2</td>
            <td>
            	<form:select path="city">  
           		<option>請(qǐng)選擇城市</option>
          		<form:option value="北京">北京</form:option>
           		<form:option value="上海">上海</form:option>
           		<form:option value="廣州">廣州</form:option>
           		<form:option value="深圳">深圳</form:option>
        	</form:select>   		
            </td>  
        </tr>
        <tr>  
            <td>所在城市3</td>
            <td>
            	<form:select path="city">  
            		<option>請(qǐng)選擇城市</option>
            		<form:options items="${cities}"/>  
        	</form:select> 		
            </td>  
        </tr>

效果如圖所示:

總結(jié)

到此這篇關(guān)于一篇文章帶你學(xué)會(huì)Spring MVC表單標(biāo)簽的文章就介紹到這了,更多相關(guān)Spring MVC表單標(biāo)簽內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • shiro之記住登錄信息

    shiro之記住登錄信息

    Shiro提供了記住我(RememberMe)的功能,當(dāng)關(guān)閉瀏覽器時(shí)下次再次打開還能記住你的信息,下面小編給大家分享shiro之記住登錄信息的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2017-09-09
  • SpringBoot返回結(jié)果統(tǒng)一處理實(shí)例詳解

    SpringBoot返回結(jié)果統(tǒng)一處理實(shí)例詳解

    這篇文章主要為大家介紹了SpringBoot返回結(jié)果統(tǒng)一處理實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Java 中IO流字符流詳解及實(shí)例

    Java 中IO流字符流詳解及實(shí)例

    這篇文章主要介紹了Java 中IO流字符流詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • java中快速創(chuàng)建帶初始值的List和Map實(shí)例

    java中快速創(chuàng)建帶初始值的List和Map實(shí)例

    下面小編就為大家?guī)硪黄猨ava中快速創(chuàng)建帶初始值的List和Map實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-10-10
  • JAVA基礎(chǔ)之注解與反射的使用方法和場(chǎng)景

    JAVA基礎(chǔ)之注解與反射的使用方法和場(chǎng)景

    這篇文章主要給大家介紹了關(guān)于JAVA基礎(chǔ)之注解與反射的使用方法和場(chǎng)景的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • SpringBoot全局異常處理之解決404/500錯(cuò)誤

    SpringBoot全局異常處理之解決404/500錯(cuò)誤

    在搭建項(xiàng)目框架的時(shí)候用的是springboot,想統(tǒng)一處理異常,但是發(fā)現(xiàn)404的錯(cuò)誤總是捕捉不到,總是返回的是springBoot自帶的錯(cuò)誤結(jié)果信息,這篇文章主要給大家介紹了關(guān)于SpringBoot全局異常處理之解決404/500錯(cuò)誤的相關(guān)資料,需要的朋友可以參考下
    2023-11-11
  • Java設(shè)計(jì)模式中觀察者模式詳解

    Java設(shè)計(jì)模式中觀察者模式詳解

    觀察者模式是極其重要的一個(gè)設(shè)計(jì)模式,也是我?guī)啄觊_發(fā)過程中使用最多的設(shè)計(jì)模式,本文首先概述觀察者模式的基本概念和Demo實(shí)現(xiàn),接著是觀察者模式在Java和Spring中的應(yīng)用,最后是對(duì)觀察者模式的應(yīng)用場(chǎng)景和優(yōu)缺點(diǎn)進(jìn)行總結(jié)
    2022-11-11
  • Java中ThreadLocal使用原理及Synchronized區(qū)別

    Java中ThreadLocal使用原理及Synchronized區(qū)別

    ThreadLocal叫做線程變量,本文詳細(xì)的介紹了ThreadLocal使用原理及Synchronized區(qū)別,有需要的朋友可以參考一下,希望對(duì)你有所幫助。
    2023-05-05
  • 利用POI生成EXCEL文件的方法實(shí)例

    利用POI生成EXCEL文件的方法實(shí)例

    Apache POI 是用Java編寫的免費(fèi)開源的跨平臺(tái)的 Java API,Apache POI提供API給Java程式對(duì)Microsoft Office格式檔案讀和寫的功能,下面這篇文章主要給大家介紹了關(guān)于利用POI生成EXCEL文件的相關(guān)資料,需要的朋友可以參考下
    2018-07-07
  • Spring Boot使用Value注解給靜態(tài)變量賦值的方法

    Spring Boot使用Value注解給靜態(tài)變量賦值的方法

    這篇文章主要介紹了Spring Boot使用Value注解給靜態(tài)變量賦值的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-07-07

最新評(píng)論