Struts2 返回JSON 数据到浏览器端

在B/S结构中,json数据的交互也是十分常用的,尤其是在Ajax的某些异步交互时。

现在来记录一下服务器端返回Json数据的大概:

正如标题所说,这是Struts2框架,所以先配置网站的web.xml:

...<!--关于struts2部分-->
<filter>
        <filter-name>struts2</filter-name>
        <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
    </filter>
	
	<filter-mapping>
        <filter-name>struts2</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
...

然后是配置struts.xml:

...
<package name="upload" namespace="/" extends="struts-default">
        <action name="getJson" class="com.utils.Contrlor"><!--Contrlor就是负责响应action的类-->
        </action>
    </package>
...
然后就是
public class Contrlor extends ActionSupport{
	
	/**
	 * gopain
	 */
	private static final long serialVersionUID = 6015784889350333698L;

        public void execute() {
	
		//....
		HttpServletResponse response = ServletActionContext.getResponse();
		response.setContentType("text/html");
		PrintWriter out = null;
		try {
			out = response.getWriter();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			out.close();
		}
		out.println(new JSONObject().accumulate("code", "OK").accumulate("pic", name).toString());
		out.close();
		//....
		//return SUCCESS;
	}
}
out.println(new JSONObject().accumulate("code", "OK").accumulate("pic", name).toString());
这是返回Json数据的关键语句,其实都是关键语句啦,如果有多个键-值只需要在.toString()前多几个.accumulate(key, value)就可以了。value也可以是对象,这个很好理解吧。

然后就是浏览器端访问。

jquery:

jQuery.get("getJson",null,function(data){
    var json = eval('('+data+')');
    alert(data);
    alert(json.code);
});
这样就可以啦!


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值