struts2支持直接将文件流返回到前台的,所以理论上你有好几种方法来实现生成xml
说默认的吧,只要将type="stream",这样你就可以输出xml、csv等等
1.先生成数据流
2.配置文件
3.完成了。
其实xml文件和html文件一样,都是纯文本的,也就是text/plain的,所有一般来讲还有个更BT的方法来实现输出xml的。
那就是action仍然做数据源的处理,不做文件封装(上面的代码实际action里做了xml文件的封装),结果返回到jsp,在jsp上做xml文件的展现,因为xml本身就是纯文本的。
两种方案,第一种在代码中做xml封装,这样就少写一个jsp页面,但改动的话,得重启服务器
第二种在jsp中做xml的封装,多写一个jsp
理论上,这种代码很少改,所以推荐用第一种方案。
说默认的吧,只要将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
理论上,这种代码很少改,所以推荐用第一种方案。