现在的位置: 首页 > 综合 > 正文

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

2013年11月02日 ⁄ 综合 ⁄ 共 2053字 ⁄ 字号 评论关闭

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",
            error:function(){alert("错误");},
            success:function(data){alert(data);}
            },"json");
        */ 

然后再来说一说这过程中遇到的那些错误:
1.

2012-9-2 12:53:06 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet default threw exception
java.lang.ClassNotFoundException: com.opensymphony.xwork2.util.TextUtils

解决方案是给 jsonplugin-0.34.jar 替换成 struts2-json-plugin-2.1.8.1.jar, json-lib-2.1.jar,struts2-junit-plugin-2.1.8.jar 这三个包 记得给jsonplugin-0.34.jar 删除
2.替换掉后可能会遇到新的问题,就是:

java.lang.ClassNotFoundException: org.apache.commons.lang.xwork.StringUtils

然后解决方案是:下载一个
xwork-core-2.1.6.jar 然后导入到项目中,而且以前的xwork-core-xxx.jar不能删掉

以上是我自己遇到的几个问题,问题不大,但也解决了好久.

原文:http://www.zhjie.net/struts2-jquery-ajax-returns-json-data.htm


抱歉!评论已关闭.