Extjs与Struts2交互,返回JSON数据的两种实现方式

标签: strutsextjsjson
208人阅读 评论(0) 收藏 举报

方案1

需要配置jar包:json-lib-2.3-jdk15.jar,

struts.xml不需要配置json result.

Action不支持return返回结果.

返回JSON方式:response.getWriter().write("xxxx");


struts.xml配置案列

  1. <!-- 利用json for jdk lib,通过response.getWriter.write(); -->  
  2.     <package name="com.langsin.crm.struts"  extends="struts-default">  
  3.           <action name="city" class="cityAction" method="getCities">  
  4.               
  5.          </action>    
  6.     </package>  


方案2

需要配置jar包struts2-json-plugin-2.1.8.jar.

struts.xml需要配置json result.

Action支持return返回结果(SUCCESS)

返回JSON方式:<param name="includeProperties">propertyName1,propertyName2</param>


struts.xml配置案列

  1. <!-- 利用struts-json-plugin,result type='json' -->  
  2.  <action name="city" class="cityAction" method="getCities">  
  3.     <result type="json" name="success">     
  4.          <param name="root">page</param>                
  5.          <param name="excludeProperties">start,limit</param>  
  6.     </result>  
  7. </action>     

  1. <result type="json">  
  2.     <param name="includeProperties">success,url</param>  
  3.     <param name="enableGZIP">true</param>  
  4.     <param name="noCache">true</param>  
  5. </result>    

Action类参考代码
  1. //方案1  
  2.         HttpServletResponse response = ServletActionContext.getResponse();  
  3.         response.setCharacterEncoding("UTF-8");  
  4.         page.setTotalCount(cityManager.countCities(pname));  
  5.         page.setRoot(cityManager.getCities(pname, page.getStart(),page.getLimit()));  
  6.         JSONArray json = JSONArray.fromObject(page.getRoot());//利用json-lib-2.3-jdk15.jar将java对象转换为json字符串对象   
  7.         response.getWriter().write("{totalCount:"+page.getTotalCount() +",data:"+json.toString()+"}");  
  8.         return null;  

  1. //方案2  
  2.         page.setTotalCount(cityManager.countCities(pname));  
  3.         page.setRoot(cityManager.getCities(pname, page));  
  4.         return SUCCESS;  

参考资料

https://struts.apache.org/docs/json-plugin.html






0
0
 
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ExtJS 6.6.0 中,你可以使用 `Ext.Ajax.request` 方法来发送 AJAX 请求并获取响应数据。这个方法接受一个配置对象,其中的 `success` 回调函数会在请求成功时被调用,传递响应对象作为参数。你可以在这个回调函数中获取到一般处理程序返回JSON 数据。 以下是一个示例代码: ```javascript Ext.Ajax.request({ url: 'your-handler-url', method: 'POST', params: { // 如果需要在请求中传递参数,可以在这里指定 param1: 'value1', param2: 'value2' }, success: function(response) { // 响应成功时将执行这个回调函数 var json = Ext.decode(response.responseText); // 在这里可以处理返回JSON 数据 console.log(json); }, failure: function(response) { // 响应失败时将执行这个回调函数 console.log('Request failed'); } }); ``` 在这个示例中,我们使用 `Ext.Ajax.request` 方法向服务器发送一个 POST 请求,并在请求中传递了两个参数。在请求成功时,`success` 回调函数会被调用,并将响应对象作为参数传递进来。我们可以使用 `response.responseText` 属性来获取到响应文本,然后使用 `Ext.decode` 方法将其解析成 JSON 对象。最后,我们可以在回调函数中处理返回JSON 数据。 需要注意的是,在使用 `Ext.Ajax.request` 方法发送 AJAX 请求时,需要确保服务器返回的响应数据是有效的 JSON 格式。否则,`Ext.decode` 方法将无法正确解析返回数据

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值