您的位置:首页 > Web前端 > JavaScript

struct2中json配置ajax

2015-05-23 13:07 204 查看
 


struct2中json配置ajax

原先在网上看到用jsonplugin-0.34.jar来处理的,可是由于自己的项目是在原有的基础上,导致报错 java.lang.NoClassDefFoundError com/opensymphony/xwork2/util/TextUtils 的错误,网上查询后得知是struct版本和json的版本不一致的问题导致的。
首先我的项目使用的是struct2.3.1的版本,因此需要在下载相关版本的插件,在网上看到一仁兄的解决方案:

解决方法:去掉jsonplugin-0.34.jar,使用struts2-json-plugin-2.3.1.jar 和 json-lib-2.3-jdk15.jar,struts2-junit-plugin-2.3.1.jar三个包
上面的插件下载 访问这里吧 http://central.maven.org/maven2/org/apache/struts/





使用这三个包终于走通了整个流程,现在贴上代码吧!
首先在action中定义了一个方法,如下:

[php] view
plaincopy

      

  

<span style="WHITE-SPACE: pre"> </span>/** 

<span style="WHITE-SPACE: pre"> </span> * AJAX 输出 

<span style="WHITE-SPACE: pre"> </span> */  

<span style="WHITE-SPACE: pre"> </span>private String result;  

  

  

<span style="WHITE-SPACE: pre"> </span>public String getResult() {  

<span style="WHITE-SPACE: pre">     </span>return result;  

<span style="WHITE-SPACE: pre"> </span>}  

  

  

<span style="WHITE-SPACE: pre"> </span>public void setResult(String result) {  

<span style="WHITE-SPACE: pre">     </span>this.result = result;  

<span style="WHITE-SPACE: pre"> </span>}                                                                                                                                                         public String deleteStore() throws Exception  {  

        HttpServletRequest request = ServletActionContext.getRequest();  

        String storeID = request.getParameter("storeID");  

        // 用一个Map做例子  

        Map<String, String> map = new HashMap<String, String>();  

  

        // 为map添加一条数据,记录一下页面传过来loginName  

        map.put("name", "sdfsfsfd");  

        map.put("age", "20");  

        map.put("storeID", storeID);  

  

        // 将要返回的map对象进行json处理  

        JSONObject jo = JSONObject.fromObject(map);  

  

        // 调用json对象的toString方法转换为字符串然后赋值给result  

        this.result = jo.toString();  

  

        // 可以测试一下result  

        System.out.println(this.result);  

        return "delSuccess";  

    }  

然后是struct的配置:

[html] view
plaincopy

<package name="storeManage" extends="<strong>json-default</strong>" namespace="/advsimplestore">  

    <action name="storeManage" class="com.tc.blacktea.adv.action.StoreSimpleAction" method="deleteStore">  

        <interceptor-ref name="json" />  

        <result name="delSuccess"<strong> type="json"</strong>>  

            <param name="result">result</param>  

        </result>  

    </action>  

</package>  

接着我们来看前端的JS代码,这里我采用的是jquery来编写的ajax代码:

我原先在项目为了测试,在表格的列表中每行有个删除按钮,点击出发ajax删除操作的,大家要自己测试的话需要自己稍微改下js代码。

[javascript] view
plaincopy

jQuery(document).ready(function() {  

    jQuery('#table .delLink').click(function() {  

        if (confirm('确定删除本条数据吗?')) {  

            var storeID = jQuery(this).attr('J_ID');  

            var dataParam = {  

                "storeID" : storeID  

            };  

            jQuery.ajax({  

                url : "storeManage!deleteStore.action",  

                cache : false,  

                type : "POST",  

                data : dataParam,  

                dataType : "text",  

                success : function(data) {  

                    alert(data);  

                },  

                error : function(XMLHttpRequest, textStatus, errorThrown) {  

                    jQuery("#errorContain").html(XMLHttpRequest.responseText);  

                }  

            });  

        }  

    });  

});  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: