在struts2+jquery使用AJAX异步提交数据,处理返回的json数据

这几天刚好用到了ajax,在此记录一哈,以免以后忘了。 jquery的$.post()和$.get()是简单的AJAX ,因此它们只能处理回话成功的请求,而出现异常是抛出;所以当需要对异常处理的时候,最好使用$.ajax(); 示例如下:记住引入jquery的包以及相关的文件。


html部分代码代码

<input type="button" value="点击测试ajax" id="btn" />
<script>
$('#btn').click(function(){
    $.ajax({
        tpye:"post",
        url:"testview!getDate.action",
        data:{
            "test":1,
            "test1":2
        },
        success:function(data){
            var jsonData = eval("("+data+")");//将发送过来的数据解析为json数据
            alert(jsonData.ok);
        },
        error:function(){
            alert("error");
        }
    });
});
</script>

java代码

public class testAction extends BaseAction{
    
    private String test;
    private String test1;
    public void getDate(){
        log.info("----data"+test+test1);
        /*如果不传json数据,而只是传单个字符串或其他的时,就不需要使用JSONObject了,直接这样写:
        getResponse().setContentType("text/html;charset=utf-8");
        PrintWriter out;
        try{
            out = getResponse().getWriter();
            out.println(“发送成功”);
            out.flush();
            out.close();
        }catch(Exception e){
            throw new RuntimeException(e);
        }
        前台的data就是发送过来的值,可以直接用
        */
        
        JSONObject json = new JSONObject();
        json.put("ok", 1);
        json.put("ok1", 2);
        
        getResponse().setContentType("text/html;charset=utf-8");
        PrintWriter out;
        try{
            out = getResponse().getWriter();
            out.println(json);
            out.flush();
            out.close();
        }catch(Exception e){
            throw new RuntimeException(e);
        }
    }
//get,set 方法省略
.............................
}

struts2的配置文件

因为使用的异步提交,不需要刷新页面,所以不需要action有返还值;若不是使用的动态调用方法的话,那么在struts配置文件中就这样写:

<action name="名字" class="路径" method="要执行的方法">
    <result name="success"></result>
</action>
//加载freemark文件,进入页面
<action name="testview" class="com.vf.testAction">
    <result name="success">test.ftl</result>
</action>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值