您的位置:首页 > 编程语言 > Java开发

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

2016-07-10 00:16 645 查看
标签:
strutsextjsjson
2016-07-10 00:16
208人阅读 评论(0)收藏举报

方案1

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

struts.xml不需要配置json result.

Action不支持return返回结果.

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

struts.xml配置案列

[html]
view plain
copy
print?





<!-- 利用json for jdk lib,通过response.getWriter.write(); -->  
    <package name="com.langsin.crm.struts"  extends="struts-default">  
          <action name="city" class="cityAction" method="getCities">  
              
         </action>    
    </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配置案列

[html]
view plain
copy
print?





<!-- 利用struts-json-plugin,result type='json' -->  
 <action name="city" class="cityAction" method="getCities">  
    <result type="json" name="success">     
         <param name="root">page</param>                
         <param name="excludeProperties">start,limit</param>  
    </result>  
</action>     

[html]
view plain
copy
print?





<result type="json">  
    <param name="includeProperties">success,url</param>  
    <param name="enableGZIP">true</param>  
    <param name="noCache">true</param>  
</result>    

Action类参考代码

[java]
view plain
copy
print?





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

[java]
view plain
copy
print?





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

参考资料
https://struts.apache.org/docs/json-plugin.html

顶0踩0
 
 
上一篇javascript zero to hero系列(1 开篇)
下一篇Hibernate中关于hibernate hql select new map的用法详解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json s2sh struts2.0 extjs