日期:2014-05-16  浏览次数:20408 次

Struts2-jquery-操作ajax返回json数据

truts2,使用jquery操作ajax返回json数据,搞得相当之蛋疼!

问题出来一堆堆,先说正确解决的代码:

首先是action中:

        private String result;
//省略getter/setter代码
    public String modify() throws Exception{
        this.result=this.isOk();
        return SUCCESS;
    }
    public String isOk(){
        boolean isOk=new HouseDaoImpl().updateHouse(house);
        return isOk?"success":"error";
    }

然后struts.xml中

<!--extends 基础的是json-default 而json-default里面有继承了struts-dafault的 -->
<package name="json" extends="json-default">
               <action name="modify" class="action.ManageAction" method="modify">
            <result type="json">
                <param name="root">result</param>
             </result>
        </action>
</package>

最后jquery代码:

    $(".update input[type='button']").click(function(){
            $.post("modify",{
            "house.id":$(".update input[type='hidden']").val(),
            "house.title":$(".update .title").val(),
            "house.street.id":$(".update .street option[selected='selected']").val(),
            "house.contact":$(".update .contact").val()
            },function(data){
                if(data=="success"){
                    alert("修改成功");
                    location.reload();
                }else{alert("修改失败!");}
            },"json");
 
/*这两个方法都行 上面的有传值,下面的没传值可以做测试*/
             /* $.ajax({
            url:"modify",
            type:"post",
            dataType:"json",
        &nb