博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
struts2 ajax 实现方式
阅读量:5050 次
发布时间:2019-06-12

本文共 1187 字,大约阅读时间需要 3 分钟。

在 struts2 中实现ajax,可以使用struts2-json-plugin扩展,但是返回的json字段必须都是Action中的属性,不可以随意的输出文本。

返回任意的文本有两种方式,

方法一:调用ServletAPI

public class HelloAction extends ActionSupport {      public String execute() throws Exception {          HttpServletResponse response = ServletActionContext.getResponse();          response.setCharacterEncoding("UTF-8");          response.setContentType("text/html; charset=utf-8");          PrintWriter out = response.getWriter();          out.print("HelloWorld");          out.flush();          out.close();          return NONE; // 或return null,不需要result    }  }

 

这里直接获取到Servlet中的HttpServletResponse对象,通过response的输出流写一个字符串,和不使用Struts 2直接用Servlet类似。这种方式与Servlet耦合,不利于测试。

方法二:使用result type="stream"

这也是Struts 2的文档中推荐的一种方式,使用type为stream的result。通过这种方法,可以不依赖于Servlet API,所以单元测试会更方便。

   private InputStream inputstream;    @Override    public String execute() throws Exception {        inputstream=new ByteArrayInputStream(returnStr.getBytes("UTF-8"));        return SUCCESS;    }
inputstream
text/html; charset=utf-8

 

转载于:https://www.cnblogs.com/DajiangDev/p/3625674.html

你可能感兴趣的文章
Unity 游戏框架搭建 (十三) 无需继承的单例的模板
查看>>
模块与包
查看>>
mysql忘记root密码
查看>>
apache服务器中设置目录不可访问
查看>>
嵌入式Linux驱动学习之路(十)字符设备驱动-my_led
查看>>
【NOIP模拟】密码
查看>>
java容器---------手工实现Linkedlist 链表
查看>>
three.js 性能优化的几种方法
查看>>
《梦断代码》读书笔记(三)
查看>>
FreeMarker解析json数据
查看>>
Java8 Lambda表达应用 -- 单线程游戏server+异步数据库操作
查看>>
次序+“选择不重复的记录”(3)——最大记录
查看>>
Codeforces 450 C. Jzzhu and Chocolate
查看>>
[Unity3D]Unity3D游戏开发MatchTarget的作用攀登效果实现
查看>>
ACdream 1115 Salmon And Cat (找规律&&打表)
查看>>
JSON、JSONP、Ajax的区别
查看>>
AngularJS学习篇(一)
查看>>
关于Xshell无法连接centos6.4的问题
查看>>
css3动画——基本准则
查看>>
javaweb常识
查看>>