当前位置: 代码迷 >> JavaScript >> struts2回来json和几种方式
  详细解决方案

struts2回来json和几种方式

热度:368   发布时间:2012-06-27 14:20:09.0
struts2返回json和几种方式

一、response对象返回

???? ??response.setContentType("text/html");

?? ? ?PrintWriter out = response.getWriter();

?? ? ?out.println("json");

?? ? ?out.flush();

?? ? ?return?null;

?? ? 输入结果: json


二、通过struts返回stream来输出

?? ?action代码

?? ? public?class TextResult?extends?ActionSupport {

?? ? ? ? ? ?private?InputStream inputStream;

?? ? ? ? ? ?public?InputStream getInputStream() {

?? ? ? ? ? ? ? return?inputStream;?

?? ? ? ? ? ?}?

?? ? ? ? ?publicString?execute()?throws?Exception {

?? ? ? ? ? ? ? inputStream =?new?StringBufferInputStream("json");

?? ? ? ? ?return?SUCCESS; }?

?? ? }

?? ? xml配置

?? ??<action name="text-result"?class="actions.TextResult">

?? ? ? ? ? ? ? ? ? <result type="stream">

?? ? ? ? ? ? ? ? ? ? ? ? ??<param name="contentType">text/html</param>

?? ? ? ? ? ? ? ? ? ? ? ? ?<param name="inputName">inputStream</param>

?? ? ? ? ? ? ? ? ? </result>

?? ? ? ?</action>

?? ? 输出结果: json

三、使用struts2-json-plugin插件

?? ?action代码

?? ? public?class TextResult?extends?ActionSupport {

?? ? ? ???private?Object name;?? ? ? ? ??

?? ? ? ? ?public?String?execute()?throws?Exception {

?? ? ? ? ? ? ? name = "json";

?? ? ? ? ?return?SUCCESS; }??? ??

?? ? ?? public String getName() {

?? ? ? ?? return this.name;

?? ? ? ?}

?? ? }


?? xml配置

?<package name="example"?extends="json-default">

?? ? ? <action name="JSONExample"?class="example.JSONExample">

?? ? ? ? ? ??<result type="json">

?? ? ? ? ? ? ? ? ? ??<param name="contentType">text/html</param>

?? ? ? ? ? ? </result>

?? ? ? </action>

</package>

输出结果:{"name":"json"}

使用这个插件,默认会把action中所有有get方法的属性把输出,可以使用@JSON(serialize =false)这个注解进行取消。

参考strtus2文档


  相关解决方案