日期:2014-05-16 浏览次数:20715 次
在struts2的2.3.1.2版本中,彻底抛弃了google的相关代码:
?
所有网上有很多人还是施用谷歌的插件,但是实在是没有必要,其麻烦。所以用strtus2官方给插件struts2-json-plugin.
,将返回页面的属性直接作为Action类的属性,并提供setter/getter方法。具体实例代码如下:
?
package com.suntrustit.schema.action.ajax;
import org.apache.struts2.convention.annotation.Action;
import org.apache.struts2.convention.annotation.ParentPackage;
import org.apache.struts2.convention.annotation.Result;
import org.apache.struts2.json.annotations.JSON;
import com.opensymphony.xwork2.ActionSupport;
@ParentPackage("json-default")  
public class AjaxAction extends ActionSupport {
	private String result;//用于向页面返回结果
	
	private String param; //用于接收页面传来的值
	@JSON(name="result")//此标签可以不加
	public String getResult() {
		return result;
	}
	public void setResult(String result) {
		this.result = result;
	}
	
	@Action(value="/ajax", results={
			@Result(type="json")
	})
	public String doAjax() throws Exception {
		result = param + " my Ajax";
		return SUCCESS;
	}
	public String getParam() {
		return param;
	}
	public void setParam(String param) {
		this.param = param;
	}
}
?注意:由于属性“result”作向页面返回展示的值,在其方法上加“@Json(name='result')”标签,当然也可以不加。
?
页面代码:
?
<script type="text/javascript" src="js/jquery.js"></script>
	<script type="text/javascript">
		$(function() {
			$("#btn").click(function() {
				
				var txt = $("#txt").val();
				alert(txt);
				$.ajax({
					url:"ajax.action?param=" + txt,
					dataType:"json",
					type:"POST",
					success:function(data) {
						alert(data.result)
					}
				})
			})
		})
	</script>