一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達(dá)式|C/C++|IOS|C#|Swift|Android|VB|R語(yǔ)言|JavaScript|易語(yǔ)言|vb.net|

服務(wù)器之家 - 編程語(yǔ)言 - Java教程 - Struts2單選按鈕詳解及枚舉類型的轉(zhuǎn)換代碼示例

Struts2單選按鈕詳解及枚舉類型的轉(zhuǎn)換代碼示例

2021-04-02 11:14lavimer Java教程

這篇文章主要介紹了Struts2單選按鈕詳解及枚舉類型的轉(zhuǎn)換代碼示例,分享了相關(guān)代碼示例,小編覺得還是挺不錯(cuò)的,具有一定借鑒價(jià)值,需要的朋友可以參考下

本文研究的主要是struts2框架單選按鈕詳解及枚舉類型的轉(zhuǎn)換的相關(guān)示例,具體如下。

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

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

假設(shè)radio單選框中l(wèi)ist的值為一個(gè)map集合:

?
1
2
<s:radio list="#{'man':'男','women':'女'}" name="gender" listkey="key" listvalue="value" value="'man'"
theme="simple"/>

注:

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

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

Struts2單選按鈕詳解及枚舉類型的轉(zhuǎn)換代碼示例

下面我們通過一個(gè)案例來說明:

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

最開始的用戶界面:

Struts2單選按鈕詳解及枚舉類型的轉(zhuǎn)換代碼示例

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

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

Struts2單選按鈕詳解及枚舉類型的轉(zhuǎn)換代碼示例

用戶界面:

?
1
2
3
4
5
6
7
<body>
  <form action="enumaction_test.action" method="post">
    請(qǐng)選擇性別:
    <s:radio list="#{'man':'男','women':'女'}" name="gender" listkey="key" listvalue="value" value="'man'" theme="simple"/>
    <input type="submit" value="提交">
  </form>
</body>

后臺(tái)action代碼:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class enumaction {
    /*定義性別,默認(rèn)是男*/
    private gender gender = gender.man;
    public gender getgender() {
        return gender;
    }
    public void setgender(gender gender) {
        this.gender = gender;
    }
    /*測(cè)試方法*/
    public string test(){
        return "success";
    }
}

注:因?yàn)槲覀兪褂玫氖敲杜e類型,所以要進(jìn)行類型轉(zhuǎn)換(具體轉(zhuǎn)換方法在前面的博客中有提到)。

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

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class enumtypeconverter extends defaulttypeconverter {
    @suppresswarnings("rawtypes")
      @override
      public object convertvalue(map<string, object> context, object value, class totype) {
        /*從前臺(tái)到后臺(tái)即從字符串轉(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){
            /*從后臺(tái)action傳到前臺(tái),即gender類型轉(zhuǎn)換為string類型 */
            /*把value強(qiáng)轉(zhuǎn)為gender*/
            gender gender = (gender) value;
            return gender.tostring();
        }
        return null;
    }
}

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

?
1
com.lixue.bean.gender=com.lixue.converter.enumtypeconverter

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

?
1
2
3
<body>
 您的性別:<s:radio list="#{'man':'男','women':'女'}" name="gender" listkey="key" listvalue="value" value="gender" theme="simple"/>
 </body>

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

附:

1.有人可能會(huì)有疑問,為什么listkey可以直接寫上key,listvalue可以直接寫value。

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

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

?
1
2
<!--struts2標(biāo)簽主題樣式-->
  <constant name="struts.ui.theme" value="simple" />

總結(jié)

這幾篇struts框架的學(xué)習(xí),頗有幾分撥開云霧見青天之感,對(duì)于java框架,算是有了比較清晰的了解,spring,mybatis等,諸如此類,萬法相通。。。

以上就是本文關(guān)于struts2單選按鈕詳解及枚舉類型的轉(zhuǎn)換代碼示例的全部?jī)?nèi)容,希望對(duì)大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對(duì)本站的支持!

原文鏈接:http://blog.csdn.net/lzm1340458776/article/details/29814825

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 久久精品动漫网一区二区 | 久久无码AV亚洲精品色午夜麻豆 | 国产最强大片免费视频 | 国产第一草草影院 | 国产经典一区二区三区蜜芽 | 日本亚欧乱色视频在线观看 | 我和子伦系列小说 | 91精品综合久久久久久五月天 | 天美麻豆 | 成人免费毛片一区二区三区 | 放荡护士玩3p口述 | 精品一区在线 | www.四虎在线观看 | 成人黄色a级片 | 午夜福利在线观看6080 | aaaa黄| 污软件在线观看 | 亚洲精品久久久久69影院 | 特黄未满14周岁毛片 | 日本高清全集免费观看 | 高清欧美videossexo免费 | avtt天堂网手机版亚洲 | 日韩欧美精品一区二区 | 国产精品自在线 | 久久成人永久免费播放 | 四虎国产精品视频免费看 | 亚洲AV 日韩 国产 有码 | 日本中文字幕一区二区三区不卡 | jizz农村野外jizz农民 | 国产精品伊人 | 极品ts赵恩静和直男激战啪啪 | 爽新片xxxxxxx | 91嫩草私人成人亚洲影院 | 亚洲 欧美 日本 国产 高清 | 手机看片国产免费久久网 | 亚洲电影第1页 | 国产成人精品日本亚洲网址 | 农夫69小说小雨与农村老太 | 99久久国产综合精品女不卡 | 幻女free性摘花第一次 | 免费操比视频 |