日期:2014-05-19 浏览次数:20745 次
import java.io.ByteArrayInputStream; import java.io.InputStream; import java.util.HashMap; import java.util.Map; import com.opensymphony.xwork2.Action; import com.opensymphony.xwork2.ActionSupport; public class StreamResultAction extends ActionSupport { private static final long serialVersionUID = 1060242513636868903L; private String cname; private InputStream inputStream; // result类型为stream时,系统需要通过一个InputStream获取结果 public String searchCustomerAddress(){ // 此处只是模拟一个业务逻辑,表示通过客户名称获取客户地址 Map<String,String> map = new HashMap<String,String>(); //new 一个 hashmap map.put("mike", "Beijing"); //按照key:value 往map里塞值 map.put("john", "Shanghai");//按照key:value 往map里塞值 map.put("jack", "guangzhou");//按照key:value 往map里塞值 String addr = map.get(cname); //从map里取到key 为 cname的value inputStream = new ByteArrayInputStream(addr.getBytes()); //创建输入流 return Action.SUCCESS; //跳到 success }
------解决方案--------------------
代码没看出做什么什么有用的操作
------解决方案--------------------
1 这个应该是Struts2处理的。
2 把这个Map放入了InputStream,然后通过StreamResult进行处理的(类似与struts2的下载。 可以看到 strtus.xml中配置的success 处理方式是 type=stream 懂?)
3 前台 页面 js 可以接受这个流。。。处理。
4 给点建议: 为什么不用dwr?非要写流里面自个处理?