天天看點

實作Action邏輯

假設有如圖4.37所示的輸入頁面,該頁面中包含了三個表單域,這三個表單域對應于三個請求參數,是以應該使用Action來封裝這三個請求參數。三個表單域的name分别為field1、field2和field3。

處理該請求的Action類代碼如下。

<a href="http://blog.51cto.com/attachment/201206/093529853.jpg" target="_blank"></a>

public class JSONExample  

{  

    //模拟處理結果的屬性  

    private int[] ints = {10, 20};  

    private Map&lt;String , String&gt; map  

        = new HashMap&lt;String , String&gt;();  

    private String customName = "顧客";  

    //封裝請求參數的三個屬性  

    private String field1;  

    //'transient'修飾的屬性不會被序列化  

    private transient String field2;  

    //沒有setter和getter方法的字段不會被序列化  

    private String field3;  

    public String execute()  

    {  

        map.put("name", "瘋狂Java講義");  

        return Action.SUCCESS;  

    }  

    //使用注釋文法來改變該屬性序列化後的屬性名  

    @JSON(name="newName")  

    public Map getMap()  

        return this.map;  

    //customName屬性的setter和getter方法  

    public void setCustomName(String customName)  

        this.customName = customName;  

    public String getCustomName()  

        return this.customName;  

    //省略了field1、field2、field3三個屬性的setter、getter方法  

    ...  

}  

在上面的代碼中,使用了JSON注釋,注釋時指定了name屬性,name屬性用于改變JSON對象的屬性名字。除此之外,JSON注釋還支援如下幾個屬性。

Ø  serialize:設定是否序列化該屬性。

Ø  deserialize:設定是否反序列化該屬性。

Ø  format:設定用于格式化輸出、解析日期表單域的格式。例如"yyyy-MM-dd'T'HH: mm:ss"。

本文轉自

fkJava李剛 51CTO部落格,原文連結:http://blog.51cto.com/javaligang/896951 ,如需轉載請自行聯系原作者