国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
struts2學(xué)習(xí)筆記(4)——數(shù)據(jù)類型轉(zhuǎn)換

回過頭來看昨天的那個(gè)例子。

在昨天的例子中,只轉(zhuǎn)換了一個(gè)Point類,如果想轉(zhuǎn)換多個(gè)Point類怎么辦呢?在昨天的例子上面做一個(gè)小的修改。

首先在input.jsp頁(yè)面中修改幾個(gè)輸入框。

<s:textfield name="point1" label="point1"></s:textfield>
<s:textfield name="point2" label="point2"></s:textfield>
<s:textfield name="point3" label="point3"></s:textfield>

這樣可以在輸入界面中增加幾個(gè)輸入框。

接著修改ConverterAction類:

private Point point1;
private Point point2;
private Point point3;

增加set和get方法。

接著修改output.jsp頁(yè)面。


point1:<s:property value="point1"/><br/>
point2:<s:property value="point2"/><br/>
point3:<s:property value="point3"/><br/>

最重要的是需要配置屬性文件 ConverterAction-conversion.properties,修改成如下內(nèi)容:

point1=cn.tshining.converter.PointConverter
point2=cn.tshining.converter.PointConverter
point3=cn.tshining.converter.PointConverter

根據(jù)上次課所學(xué)應(yīng)該可以很輕松地分析出來……


但是如果有多個(gè)類需要轉(zhuǎn)換,那么用之前的方法就要為每個(gè) 類寫一個(gè)屬性文件。有什么方法可以簡(jiǎn)單一點(diǎn)呢?那么我們使用的就是全局類型轉(zhuǎn)換。

全局類型轉(zhuǎn)換就是將轉(zhuǎn)換配置信息寫到一個(gè)特有的文件中,文件名為xwork-conversion.propreties

內(nèi)容為:

cn.tshining.beans.Point=cn,tshining.converter.PointConverter

等號(hào)左邊為要轉(zhuǎn)換的類,右邊為用什么類進(jìn)行轉(zhuǎn)換。

這個(gè)文件得放在什么地方呢?這個(gè)文件必須放在和struts.xml同目錄下。


接下來回到PointConverter類。有沒有其他的實(shí)現(xiàn)方法呢?這個(gè)類還可以繼承StrutsTypeConverter類,以及覆蓋其方法 convertFromString()和convertToString(),方法邏輯和之前類似。這里不再敘述。



那么struts2框架可以轉(zhuǎn)換集合類型嗎?答案是肯定的,通過這個(gè)例子可以很清楚的看到:

現(xiàn)在我要轉(zhuǎn)換List<Point>這個(gè)集合,改怎么做呢?

首先修改ConverterAction類,定義字段private List<Point> point;,然后生成set和get方法。

接著修改input.jsp頁(yè)面

<s:textfield name="point" label="point1"></s:textfield>
<s:textfield name="point" label="point2"></s:textfield>
<s:textfield name="point" label="point3"></s:textfield>

由于Point現(xiàn)在是一個(gè)集合,所以上面文本字段的name是一樣的。

修改output.jsp頁(yè)面:

point:<s:property value="point"/><br/>

同樣,由于Point是集合,所以只用一個(gè)輸出就可以了。

修改PointConverter類:


public class PointConverter3 extends StrutsTypeConverter {

    @Override
    public Object convertFromString(Map context, String[] value, Class toType) {

        List list = new ArrayList();

        for (String str : value) {

            Point point = new Point();

            String[] param = str.split(",");
            int x = Integer.parseInt(param[0]);
            int y = Integer.parseInt(param[1]);

            point.setX(x);
            point.setY(y);

            list.add(point);
        }

        return list;

    }

    @Override
    public String convertToString(Map context, Object value) {

        List list = (List) value;

        StringBuilder sb = new StringBuilder();

        for (Point point : list) {

            int x = point.getX();
            int y = point.getY();

            sb.append("[ x = ").append(x).append(" , y = ").append(y).append(
                    " ] ");

        }
        return sb.toString();

    }

}


最后修改properties文件,注意,在此,只能使用局部配置文件,將全局配置文件注釋,修改局部配置文件為如下內(nèi)容:

point=cn.tshining.converter.PointConverter


關(guān)于類型轉(zhuǎn)換基本上結(jié)束了,最后,有什么方法可以不需要類型轉(zhuǎn)換就可以獲得用戶輸入嗎??


將Action中Point修改為原來的private Point point;

在Point中覆蓋toSting()方法。然后注釋所有的屬性文件。


<s:textfield name="point.x" label="x"></s:textfield>
<s:textfield name="point.y" label="y"></s:textfield>

如此即可以不用進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換。

在此,Point類必須有不帶參數(shù)的構(gòu)造方法才可以成功得到輸入。

雖然這種方法比較簡(jiǎn)便,但是卻增加了表單項(xiàng),在某種意義上不建議使用。


以上便是今天學(xué)習(xí)的類型轉(zhuǎn)換的知識(shí)。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
struts2 Converter
最強(qiáng)最全的在線查詢
struts2學(xué)習(xí)筆記(2)struts2中的類型轉(zhuǎn)換_0-1World
Struts2 類型轉(zhuǎn)換
struts2的類型轉(zhuǎn)換
struts2國(guó)際化配置文檔
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服