六狼论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博账号登陆

只需一步,快速开始

搜索
查看: 40|回复: 0

struts2中输出json,用jquery得到结果

[复制链接]

升级  42%

5

主题

5

主题

5

主题

童生

Rank: 1

积分
21
 楼主| 发表于 2013-1-29 11:00:18 | 显示全部楼层 |阅读模式
目的,在页面上点击按钮,让后端执行命令,后端反馈json,前端解晰并提出alter框
 
1、在struts2中,较方便的json输出,是通过google jsonplugin,下载这个包,附件中有。
 
2、在struts.xml 继承josn
extends="struts-default,json-default" 
可以多继承
 
3、新建ajax.struts.xml,专门用于异步请求
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"    "http://struts.apache.org/dtds/struts-2.0.dtd"><struts><package name="ajax" namespace="/ajax" extends="default"><action name="ajax_*" class="com.my.ajax.action.AjaxJsonAction" method="{1}"> <result type="json" > <param name="root">result</param></result></action></package></struts> 
 
4、新建AjaxJsonAction类,用于后端处理得到json
/** * @author 锅巴 * @date 2011-3-6 * @description  */public class AjaxJsonAction extends ActionSupport{private String result; /** *  */private static final long serialVersionUID = 1L;public String ajaxRequest() throws Exception {JSONObject obj = null;try{obj = JSONObject.fromObject(getJsonMap());}catch(Exception e){Map<String,String> map = new HashMap<String,String>();map.put("result", "系统错误");obj = JSONObject.fromObject(map);}result = obj.toString();return SUCCESS;}public String getResult() {return result;}private Map<String,String> getJsonMap(){Map<String,String> result = new HashMap<String, String>();result.put("result", "处理成功");return result;}} 
 
5、页面中的处理,用jquery
//f_getfunction f_ajax(id){$.ajax({  url: "/ajax/ajaxRequest.html",  data: 'mobile='+mobile,  cache: false,  success: function(data){  var f=jQuery.parseJSON(data);  //result是json中的键名  alert(f.result);  }});} 
  <a href="#" >发短信</a>
 
您需要登录后才可以回帖 登录 | 立即注册 新浪微博账号登陆

本版积分规则

快速回复 返回顶部 返回列表