struct2中json配置ajax

6 篇文章 0 订阅
 

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 plain copy
  1.       
  2.   
  3. <span style="WHITE-SPACE: pre"> </span>/** 
  4. <span style="WHITE-SPACE: pre"> </span> * AJAX 输出 
  5. <span style="WHITE-SPACE: pre"> </span> */  
  6. <span style="WHITE-SPACE: pre"> </span>private String result;  
  7.   
  8.   
  9. <span style="WHITE-SPACE: pre"> </span>public String getResult() {  
  10. <span style="WHITE-SPACE: pre">     </span>return result;  
  11. <span style="WHITE-SPACE: pre"> </span>}  
  12.   
  13.   
  14. <span style="WHITE-SPACE: pre"> </span>public void setResult(String result) {  
  15. <span style="WHITE-SPACE: pre">     </span>this.result = result;  
  16. <span style="WHITE-SPACE: pre"> </span>}                                                                                                                                                         public String deleteStore() throws Exception  {  
  17.         HttpServletRequest request = ServletActionContext.getRequest();  
  18.         String storeID = request.getParameter("storeID");  
  19.         // 用一个Map做例子  
  20.         Map<String, String> map = new HashMap<String, String>();  
  21.   
  22.         // 为map添加一条数据,记录一下页面传过来loginName  
  23.         map.put("name""sdfsfsfd");  
  24.         map.put("age""20");  
  25.         map.put("storeID", storeID);  
  26.   
  27.         // 将要返回的map对象进行json处理  
  28.         JSONObject jo = JSONObject.fromObject(map);  
  29.   
  30.         // 调用json对象的toString方法转换为字符串然后赋值给result  
  31.         this.result = jo.toString();  
  32.   
  33.         // 可以测试一下result  
  34.         System.out.println(this.result);  
  35.         return "delSuccess";  
  36.     }  


然后是struct的配置:

[html]  view plain copy
  1. <package name="storeManage" extends="<strong>json-default</strong>" namespace="/advsimplestore">  
  2.     <action name="storeManage" class="com.tc.blacktea.adv.action.StoreSimpleAction" method="deleteStore">  
  3.         <interceptor-ref name="json" />  
  4.         <result name="delSuccess"<strong> type="json"</strong>>  
  5.             <param name="result">result</param>  
  6.         </result>  
  7.     </action>  
  8. </package>  

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

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

[javascript]  view plain copy
  1. jQuery(document).ready(function() {  
  2.     jQuery('#table .delLink').click(function() {  
  3.         if (confirm('确定删除本条数据吗?')) {  
  4.             var storeID = jQuery(this).attr('J_ID');  
  5.             var dataParam = {  
  6.                 "storeID" : storeID  
  7.             };  
  8.             jQuery.ajax({  
  9.                 url : "storeManage!deleteStore.action",  
  10.                 cache : false,  
  11.                 type : "POST",  
  12.                 data : dataParam,  
  13.                 dataType : "text",  
  14.                 success : function(data) {  
  15.                     alert(data);  
  16.                 },  
  17.                 error : function(XMLHttpRequest, textStatus, errorThrown) {  
  18.                     jQuery("#errorContain").html(XMLHttpRequest.responseText);  
  19.                 }  
  20.             });  
  21.         }  
  22.     });  
  23. });  


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值