[Java] Struts2 中的action 小注意

sunshineparasol 2010-01-21
action 里面的方法名字慎用 get 开头,如果使用get开头的话,在返回数据(json)的时候,有可能会运行所有的get开头的方法!
yhailj 2010-01-22
在 get 方法前加注解:  @JSON(serialize = false) 不串行化,

默认是 true, 所以会将所有的 get 属性都返回

或者 : 在返回的参数中使用 root 参数
<result type="json">
	<!-- root 属性名不可变, 可以去看 JSONResult 类源码 -->
	<param name="root">json</param>
</result>


在 Action 类中:
private String json;

public String getJson(){return json;}
public void setJson(String json){this.json = json;}

public String XXX() {
	// 自己构建 json 格式
	json = "{\"city\":\"Beijing\",\"postcode\":100001}";
	return "success";
}


JavaScript:
function callback(data){  
	// 转换成 json 格式
	var da = eval("(" + data + ")");
	alert(da.city + da. postcode);
}

sunshineparasol 2010-01-22
yhailj 写道
在 get 方法前加注解:  @JSON(serialize = false) 不串行化,

默认是 true, 所以会将所有的 get 属性都返回

或者 : 在返回的参数中使用 root 参数
<result type="json">
	<!-- root 属性名不可变, 可以去看 JSONResult 类源码 -->
	<param name="root">json</param>
</result>


在 Action 类中:
private String json;

public String getJson(){return json;}
public void setJson(String json){this.json = json;}

public String XXX() {
	// 自己构建 json 格式
	json = "{\"city\":\"Beijing\",\"postcode\":100001}";
	return "success";
}


JavaScript:
function callback(data){  
// 转换成 json 格式
var json = eval("(" + data + ")");
alert(json.city + json. postcode);
}


与 root 参数相对的是 excludeProperties 参数, 这是一个 list(就是以 , 隔开)

受教了,谢谢!!Javaeye还是牛人比较多啊
litianyi520 2010-02-23
json还是自己组装的好,不要依赖action
tx_it 2011-05-05
引用
[img][/img]
    
tx_it 2011-05-05
[b][/b][i][/i][u][/u]
引用
  • 545
Global site tag (gtag.js) - Google Analytics