struts2和json的集成,是为了适应在action 处理完后需要向对端输出相应对象的多个属性,简单的例子是:多级select标签的联动,这个时候从action返回的值不仅仅是SUCCESS or ERROR这么简单,而是在后端拼接好的<option>xxx</option>,这个时候JSON排上了用场
附加一句,如果不是在Struts2中使用json,例如在servlet中,这个时候是通过拼接json格式的字符串返回到前端(注:这只是我看到有类似的例子,稍后自己会亲手测试下..这或许我印证了: struts2h会把返回的对象自动封装成相应的json格式. 这句话,只不过在servlet里我们是自己来动手封装了)
原理:通过配置,struts2会调用action里面相应属性的getter方法拿到对象,在封装成jsong格式后序列化传送到前端
配置方式:
1>加入json-lib-2.4-jdk15.jar
2>在struts.xml的配置里面加上:
<package name="strtus2" extends="json-default"></package>
注:以后要用到json的action extends这个包就可以了
3>action的配置 例子:
<action name="registerUtilAction" class="springRegisterUtilAction" >
<result name="areaListDO" type="json"> <!-- type=json 切记 result的name属性要和返回的属性名一样-->
<param name="excludeNullProperties">true</param> <!-- 是否去掉返回值为NULL的properties -->
<param name="includeProperties"><!-- 包括哪些properties -->
areaListDO
</param>
</result>
</action>
4> 编写action,记住返回的属性一定要有getter方法,不需要返回的属性可用:
@JSON(serialize = false)
这个json注解标示,即不序列化这个属性,最好不需要返回的都这么注解,否则可能会出现不能序列化的异常等
5>前端提取json对象,这里推荐用firebug等工具查看下:
可以清晰的看到json的内容,甚至json的格式:对与这截图 我的areaListDO 只有两个属性 areaList(又包括areaId,areaInfoPK和areaName三个属性) 和results两个属性,还是比较方便的, 在前端提取json格式可以这样:
json.areaListDO.results 即json对象的areaListDO(这个是我返回的属性名)的results这个属性
也可以 json["areaListDO"].results 之所以这么取 是看到网上有人说用中括号[] 取是避免属性中有中文,不过我亲自测试过,用"." 取含有中文的属性也是没有乱码的...
大功告成 ..
分享到:
相关推荐
在Struts2中集成JSON支持,首先需要添加相应的依赖,比如struts2-json-plugin,这个插件提供了JSON结果类型。当Action执行完毕后,可以返回一个JSON结果类型,Struts2会自动将Action的属性转换为JSON格式并返回给...
总结,Struts2中返回JSON数据有两种主要方式:一是通过`response.getWriter().print()`手动输出JSON字符串;二是利用Struts2的内置JSON插件,通过返回特定的属性和结果类型自动处理JSON。每种方法都有其适用场景,...
首先,我们需要在Struts2中配置JSON结果类型。在`struts.xml`配置文件中,添加一个特定于JSON的Action配置,例如: ```xml <package name="default" namespace="/" extends="struts-default"> <result type="...
在Struts2中,Action类中的方法负责处理来自客户端的请求。为了返回JSON数据,可以定义一个如下的Action方法: ```java public String getXxx() { return "aaa"; } ``` 当客户端调用此方法时,Struts2会自动将...
为了在Struts2中启用JSON支持,开发者需要在`struts.xml`配置文件中添加JSON结果类型,并在Action类中定义相应的返回类型。例如: ```xml <package name="default" namespace="/" extends="struts-default"> ...
在Struts2中,通过整合JSON插件,可以方便地将Action的返回结果转换为JSON格式,供前端JavaScript处理。 `struts2-json-plugin`是Struts2的一个插件,它使得Struts2能够处理JSON请求和响应,无需额外的配置或库。这...
在Struts2中,返回JSON(JavaScript Object Notation)数据类型是一种常见的需求,尤其是在开发AJAX或者前后端分离的应用时。JSON是一种轻量级的数据交换格式,它允许服务器向客户端发送结构化的数据,而无需解析...
1. **配置JSON插件**:首先,要在Struts2中启用JSON支持,我们需要在`struts.xml`配置文件中添加JSON插件的配置。这通常包括注册插件以及指定哪些Action需要返回JSON响应。 ```xml <constant name="struts.enable....
这个插件允许开发者在Struts 2中轻松地创建能够返回JSON的Action,使得前端(通常使用JavaScript库如jQuery)可以获取到JSON数据并进行进一步处理。 现在我们来详细讨论这两个库在实际应用中的作用: 1. **json-...
在Struts2中集成JSON(JavaScript Object Notation)技术可以使得后端数据与前端交互更加高效,特别是对于AJAX请求。JSON是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Struts2中使用...
在Struts2的配置文件(struts.xml或struts.properties)中,需要为Action添加一个`@ResultType`注解或结果类型配置,指定为`json`。这样,当Action执行完成后,会返回JSON格式的数据。 3. **JSON Value Stack**: ...
在Struts2的配置文件`struts.xml`中,我们需要开启JSON插件。这通常涉及到添加以下配置元素: ```xml <constant name="struts.enable.JSON" value="true"/> <constant name="struts.action.extension" value=...
在Struts2中使用JSON,有两个关键的JAR包是必不可少的,这些正是`struts2-json-plugin-2.2.1.jar`和`json-lib-2.3-jdk15.jar`。 首先,`struts2-json-plugin-2.2.1.jar`是Struts2 JSON插件的实现库。这个插件为...
在本场景中,我们将探讨如何使用AJAX来传递JSON数组,并在Struts2的Action中接收和处理这些数据。 首先,JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它易于人阅读和编写,同时也易于机器解析...
在Struts2中,你可以通过在Action类的方法上添加特定的注解,如`@Result(type = "json")`,来指示该方法应该返回JSON格式的数据。 Struts2 JSON Plugin 2.3.8版本包含了以下关键特性: 1. 自动处理Action结果:当...
本篇将详细讲解如何在Struts2中配置Action来返回JSON响应。 首先,我们需要了解Struts2的Result类型。默认情况下,Action会返回一个JSP页面作为结果,但通过配置,我们可以让Action返回JSON数据。这需要使用到一个...
在Struts2中,我们可以配置Action类返回JSON类型的结果,这样当客户端(如Android应用)发起请求时,服务器会返回JSON格式的数据。这些数据可以包含对象、数组、字符串、数字等多种类型,非常适合移动设备上的数据...
导入这些包后,开发者可以按照Struts2的配置方式设置Action,通过`@ResultType("json")`注解或在配置文件中指定`result`类型为`json`,Struts2就会自动将Action的返回值转化为JSON格式并发送到客户端。 在实际开发...