当前位置: 代码迷 >> XML/SOAP >> struts2生成xml资料流
  详细解决方案

struts2生成xml资料流

热度:3212   发布时间:2013-02-26 00:00:00.0
struts2生成xml文件流
struts2支持直接将文件流返回到前台的,所以理论上你有好几种方法来实现生成xml
说默认的吧,只要将type="stream",这样你就可以输出xml、csv等等
1.先生成数据流
public class XMLAction  extends ActionSupport {	private InputStream xmlStream;  //定义一输入流	@Override	public String execute() throws Exception {		String result = "success";		StringBuffer buf = new StringBuffer();		buf.append("<cc>this is xml</cc>");				try{			xmlStream = new ByteArrayInputStream(buf.toString().getBytes());		}catch(Exception e){			e.printStackTrace();			result = "false";		}		return result;	}	public InputStream getXmlStream() {		return xmlStream;	}	public void setXmlStream(InputStream xmlStream) {		this.xmlStream = xmlStream;	}}

2.配置文件
<action name="exportXml" class="exportXmlAction">	      <result name="success" type="stream">  	        <!-- 文件类型 --> 	        <param name="contentType">text/plain</param> 	        <!-- xmlStream 与对应action中的输入流的名字要一致 --> 	        <param name= "inputName">xmlStream</param>  	      </result>	  	</action>

3.完成了。

其实xml文件和html文件一样,都是纯文本的,也就是text/plain的,所有一般来讲还有个更BT的方法来实现输出xml的。
那就是action仍然做数据源的处理,不做文件封装(上面的代码实际action里做了xml文件的封装),结果返回到jsp,在jsp上做xml文件的展现,因为xml本身就是纯文本的。
两种方案,第一种在代码中做xml封装,这样就少写一个jsp页面,但改动的话,得重启服务器
第二种在jsp中做xml的封装,多写一个jsp

理论上,这种代码很少改,所以推荐用第一种方案。
  相关解决方案