注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

Struts2 返回 xml 信息  

2013-02-26 17:53:37|  分类: struts |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
Struts2返回XML格式 
1.struts.xml里面的配置package extends="struts-default" 
Xml代码 
  1. <action name="xxxName" class="xxxAction" method="xxxMethod" >  
  2. <!-- 下面的name和type不能改 -->  
  3.             <result name="xmlMessage" type="plaintext"></result>    
  4.           </action>   

2.Action里面的方法 
Java代码 
  1. //没有返回值  
  2. public void xxxMethod() throws IOException{  
  3.         HttpServletResponse response = ServletActionContext.getResponse();      
  4.         PrintWriter out = response.getWriter();      
  5.         response.setContentType("text/xml;charset=utf-8");   
  6.         response.setHeader("Cache-Control""no-cache");   
  7.         out.write("你的XML文档");  
  8. //不用关,Struts2会帮你关  
  9.     }  


Struts2返回Json格式 

1、下载jsonplugin-0.7.jar包。下载地址是:http://code.google.com/p/jsonplugin/downloads/list 

2、在struts.xml中包要继承json-default,如:extends="json-default" 

3、返回时这样写: 

Xml代码 
  1. <result type="json" name="input">  
  2.        <param name="root">msg</param>  
  3. </result>  


在action中有关于msg的get,set方法.msg可以是一个字符串,也可以是一个对象,里面的字段就对应着Key,Value 


以前用struts2,每次响应返回都是跳转到页面。这次的需求是要返回一个xml,查看了struts2的文档,当result的类型为xslt时,可以返回xml。但是对xslt不太熟悉,放弃了此方法。在网上搜了下,找到下面两种取巧的方法: 

  
     方法一: 直接利用ActionSuport的execute方法: 
     
        struts.xml中代码,不需要定义 result, 
        
Java代码 
  1. <action name="OutxmlExecute"  class="com.OutxmlExecuteAction" >  
  2.          
  3. </action>  
  4.   
  5.    

       
       Action中代码,注意这里execute方法的返回为null,: 
         
Java代码 
  1. public String execute() throws IOException{  
  2.         String outPut = "<persons>";  
  3.         outPut += "<person1><name>hanyoud</name><age>25</age></person1>";  
  4.         outPut += "<person2><name>张三</name><age>18</age></person2>";  
  5.         outPut += "<person3><name>李四</name><age>20</age></person3>";  
  6.         outPut += "</persons>";  
  7.           
  8.         //转换编码 否则汉字显示为乱码  
  9.         outPut = new String(outPut.getBytes("UTF-8"),"ISO-8859-1");  
  10.           
  11.           
  12.           
  13.         HttpServletResponse response = ServletActionContext.getResponse();  
  14.         response.setContentType("text/xml ");  
  15.         PrintWriter pw = response.getWriter();  
  16.         pw.print(outPut);  
  17.         System.out.println("-------------------------------");  
  18.         return null;  
  19.     }  
  20.   
  21.   
  22.           




    方法二:利用result类型为plaintext返回xml 

     struts.xml代码, 
      
Java代码 
  1. <action name="Outxml" method="outxml" class="com.OutxmlAction" >  
  2.                <result name="xmlMessage" type="plaintext"></result>   
  3.                           
  4.        </action>   
  5.         


     Action中代码: 
Java代码 
  1. public   void  outxml() throws IOException   {   
  2. em.out.println("=======================");  
  3.   HttpServletResponse response = ServletActionContext.getResponse();   
  4.   response.setContentType( "text/xml " );   
  5.   PrintWriter pw = response.getWriter();   
  6.   pw.print( "<persons>" );   
  7.   pw.print( "<person1><name>hanyoud</name><age>25</age></person1>" );   
  8.   pw.print( "<person2><name>ss</name><age>18</age></person2>" );   
  9.   pw.print( "</persons>" );   
  评论这张
 
阅读(387)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016