假设有如图4.37所示的输入页面,该页面中包含了三个表单域,这三个表单域对应于三个请求参数,因此应该使用Action来封装这三个请求参数。三个表单域的name分别为field1、field2和field3。
处理该请求的Action类代码如下。
- public class JSONExample
- {
- //模拟处理结果的属性
- private int[] ints = {10, 20};
- private Map<String , String> map
- = new HashMap<String , String>();
- 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 ,如需转载请自行联系原作者