日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
java中Struts2單選按鈕及枚舉類型如何轉(zhuǎn)換

這篇文章給大家分享的是有關(guān)java中Struts2單選按鈕及枚舉類型如何轉(zhuǎn)換的內(nèi)容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計、成都做網(wǎng)站和眉山服務(wù)器托管的網(wǎng)絡(luò)公司,有著豐富的建站經(jīng)驗和案例。

具體如下。

使用struts2標(biāo)簽,毫無疑問要先引入標(biāo)簽庫:

<%@ taglib prefix="s" uri="/struts-tags"%>

假設(shè)radio單選框中List的值為一個Map集合:

注:

1.name屬性還是對應(yīng)HTML代碼的name屬性。
2.listKey屬性對應(yīng)HTML代碼的value屬性。
3.listValue屬性對應(yīng)HTML代碼label標(biāo)簽屬性。
4.value屬性是指:當(dāng)value的值和集合中的值匹配時就選中(如果value的值為字符串時要加上單引號)。

執(zhí)行后會解析為html代碼,如圖:

java中Struts2單選按鈕及枚舉類型如何轉(zhuǎn)換

下面我們通過一個案例來說明:

修改用戶的時候,跳轉(zhuǎn)到修改界面,在修改界面要回顯用戶的性別,這里性別我們使用枚舉來表示。

最開始的用戶界面:

java中Struts2單選按鈕及枚舉類型如何轉(zhuǎn)換

實現(xiàn)代碼如下!!!!

項目結(jié)構(gòu):

java中Struts2單選按鈕及枚舉類型如何轉(zhuǎn)換

用戶界面:

 
   
    請選擇性別: 
     
     
   

后臺action代碼:

public class EnumAction {
	/*定義性別,默認(rèn)是男*/
	private Gender gender = Gender.MAN;
	public Gender getGender() {
		return gender;
	}
	public void setGender(Gender gender) {
		this.gender = gender;
	}
	/*測試方法*/
	public String test(){
		return "success";
	}
}

注:因為我們使用的是枚舉類型,所以要進(jìn)行類型轉(zhuǎn)換(具體轉(zhuǎn)換方法在前面的博客中有提到)。

枚舉類型轉(zhuǎn)換類代碼:

public class EnumTypeConverter extends DefaultTypeConverter {
	@SuppressWarnings("rawtypes") 
	  @Override 
	  public Object convertValue(Map context, Object value, Class toType) {
		/*從前臺到后臺即從字符串轉(zhuǎn)為枚舉類型*/
		if (toType == Gender.class){
			/*把value強(qiáng)轉(zhuǎn)為數(shù)組類型*/
			String[] params = (String[]) value;
			return Gender.valueOf(params[0]);
		} else if (toType == String.class){
			/*從后臺action傳到前臺,即Gender類型轉(zhuǎn)換為String類型 */
			/*把value強(qiáng)轉(zhuǎn)為Gender*/
			Gender gender = (Gender) value;
			return gender.toString();
		}
		return null;
	}
}

定義全局類型轉(zhuǎn)的屬性文件:

com.lixue.bean.Gender=com.lixue.converter.EnumTypeConverter

跳轉(zhuǎn)后的結(jié)果頁面(用戶修改界面):

 
 您的性別: 
 

注:在修改界面是如何實現(xiàn)用戶當(dāng)前所選性別的回顯呢?關(guān)鍵是看value值,上述代碼中的value我就寫了一個gender,其實這個gender是在action中定義的一個屬性,上一篇文章我們講OGNL的時候就說過,action中的屬性會保存在值棧中,我們?nèi)≈禇V械膶傩?,直接通過屬性名稱就可以獲取,不需要通過#命名空間的形式獲取。獲取完然后和前面的map集合進(jìn)行匹配,判斷是否勾選。

附:

1.有人可能會有疑問,為什么listKey可以直接寫上key,listValue可以直接寫value。

解答:struts2在解析標(biāo)簽中的那個list集合時,使用的是Iterator,iterator的功能是每次循環(huán)都會將結(jié)果(每次獲取一個Entry對象)保存在值棧的棧頂,所以通過OGNL表達(dá)式取值的時候,直接通過對象的屬性(Entry的屬性名稱為key和value)名稱來取值即可,不需要使用#命名空間的方式,不明白OGNL表達(dá)式的同學(xué)可以看上一篇文章。

2.我們會發(fā)現(xiàn)在寫標(biāo)簽的時候我們總會寫theme這個屬性,這個屬性的功能是為了避免struts2在解析標(biāo)簽的時候,生成一些不必要的代碼,但是每次都要寫,豈不是很坑爹,其實我們可以在struts.xml文件中配置一個常量就可以達(dá)到效果:

 
  

感謝各位的閱讀!關(guān)于“java中Struts2單選按鈕及枚舉類型如何轉(zhuǎn)換”這篇文章就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,讓大家可以學(xué)到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!


文章題目:java中Struts2單選按鈕及枚舉類型如何轉(zhuǎn)換
本文地址:http://www.dlmjj.cn/article/gccdpj.html