ajax是我们开发过程中常常用到,那么当ajax碰到struts2又会发生什么样的事情呢?通常笔者在使用ajax过程时更多是从服务端返回json格式的数据。下面就说说如何通过struts2来返回json数据。
首先来看一下我的struts2配置文件中action的配置
<package name="account" extends="struts-default" namespace="/account"> <action name="add" method="addAccount" class="org.lian.account.actions.AccountAction" > <result type="stream"> <param name="contentType">text/html</param> <param name="inputName">inputStream</param> </result> </action> </package>
接下来是Action,Java类设计
public class AccountAction extends ActionSupport { private InputStream inputStream; public InputStream getInputStream() { return inputStream; } public String addAccount() throws IOException { Map<String, String> map = new HashMap<String, String>(); map.put("flag", "添加成功"); String result = GsonUtil.getInstance().convertToJson(map); inputStream = new ByteArrayInputStream(result.getBytes("UTF-8")); return SUCCESS; } }
Java对象和json字符串相互转换,使用google的gson工具包,使用的版本是2.8.0,下面是我工具类的代码
import com.google.gson.Gson; public class GsonUtil { private static GsonUtil util; private GsonUtil() { } public static GsonUtil getInstance() { if (util == null) util = new GsonUtil(); return util; } /** * * @description TODO * @param obj * @return * @return String */ public String convertToJson(Object obj) { Gson gson = new Gson(); return gson.toJson(obj); } /** * * @description TODO * @param json * @param type * @return * @return T */ public <T> T parseJson(String json, Class<T> type) { Gson gson = new Gson(); return gson.fromJson(json, type); } }
笔者已经将gson工具包上传了,如需要可以自行下载。
相关推荐
Struts-AJAX-JSON-Struts 包是基于经典的Struts框架,为了实现AJAX(异步JavaScript和XML)和JSON(JavaScript Object Notation)交互功能而设计的一组库和资源集合。这个包通常包含了Struts框架的核心组件,以及...
`struts2-json-plugin-2.1.8.1.jar` 则是Struts 2框架的一个插件,主要用于增强Struts 2对JSON的支持。Struts 2是一款非常流行的MVC(Model-View-Controller)框架,用于构建企业级的Java Web应用程序。这个插件允许...
开发者可以通过这个实例学习如何配置Struts 2的Ajax插件,编写Action以返回JSON数据,以及在客户端使用JavaScript处理这些数据,实现实时的页面更新。对于初学者来说,这是一个很好的实践案例,可以帮助他们理解如何...
在实际开发中,为了使用这个插件,你需要将`struts2-json-plugin-2.3.8.jar`文件放入项目的类路径(classpath)下,然后在Struts2的配置文件(通常为struts.xml)中启用JSON插件。在Action类中,定义返回JSON数据的...
首先,我们来看`struts-json-plugin-2.1.8.jar`,这是Struts2的JSON插件,它允许Struts2的动作类直接返回JSON格式的数据,方便前端进行Ajax请求处理。该插件在2.1.8版本中修复了若干bug,并提供了对JSON输出的支持。...
为了使Struts2支持JSON响应,我们需要在Struts配置文件(通常为struts.xml)中添加相应的配置。这包括定义一个Action,指定其结果类型为`json`。例如: ```xml <result type="json"> <param name="root">...
这个压缩包包含了两个关键的组件:json-lib-2.1.jar和struts2-json-plugin-2.1.8.1.jar,它们是Struts2支持JSON(JavaScript Object Notation)序列化和反序列化的关键。 1. **json-lib-2.1.jar**: JSON是一种轻...
首先,你需要将struts2-json-plugin相关的JAR文件添加到项目的类路径中。然后,在Struts2的配置文件struts.xml中启用JSON插件,通常通过以下配置实现: ```xml <constant name="struts.enable.SlashesInActionNames...
总结,Struts2和jQuery的Ajax JSON数据交换涉及以下几个关键步骤:配置Struts2的JSON插件,编写返回JSON数据的Action,使用jQuery发起Ajax请求并处理返回的JSON数据。通过这种方式,可以实现客户端与服务器之间的...
1. `extends="json-default"`表示依赖于Struts2的JSON插件,需要将其JAR包添加到项目的类路径。 2. `result`的`type`设为`json`,意味着Action执行完毕后,将以JSON格式返回数据。 在Action类中,可以直接返回一个...
2. Struts2的JSON插件:`struts2-json-plugin.jar` 3. JSON处理库:`json-lib.jar`(通常在Struts2的JSON插件中已经包含) 确保这些库被添加到项目的类路径中,以便Struts2能够解析并返回JSON数据。 **二、编写...
ajax结合Struts2要用到的jar包
使用Struts2 JSON Plugin,开发者可以设置Action的返回类型为"json",这样在Action执行完毕后,Struts2会自动将Action的模型驱动数据转化为JSON格式并发送到客户端。这大大简化了服务器端与客户端之间通过HTTP传递...
在本资源包"struts-2.5.20-all"中,包含了Struts 2框架的完整版本,以及`struts2-json-plugin.jar`插件,专门用于处理JSON(JavaScript Object Notation)数据。 **Struts 2框架核心概念:** 1. **Action类**:...
标题"struts2-json-plugin-2.1.8.1.jar"表明这是Struts2 JSON插件的一个特定版本,2.1.8.1。在软件开发中,版本号的更新通常意味着修复了已知的错误,增加了新的特性,或者提高了性能。 "JsonPlugin.tld"是Tag ...
【标题】"ZTree+Struts2+ajax+json实现checkbox权限树"涉及的技术栈主要集中在前端的ZTree,后端的Struts2框架,以及数据交互中的Ajax和JSON。这个项目的核心目标是构建一个可复选的权限树形结构,用户通过勾选节点...
本实例展示了如何在Struts2框架下,通过Ajax发送请求获取JSON数据,并将数据返回到JSP页面,以填充下拉列表(`<s:select/>`标签)。 1. **Struts2配置**: 在`struts.xml`配置文件中,我们需要定义一个Action,...
`struts2-json-plugin`是Struts2的一个插件,专门用于处理JSON相关的功能。 在使用Struts2的JSON插件时,为了确保一切正常运行,我们需要在项目中包含一些必要的JAR包。`struts2-json-plugin-2.2.1`这个版本的插件...
这告诉Struts2框架当收到名为`struts2Action`的请求时,使用`Struts2Action`类,并返回JSON格式的结果。如果需要在Action执行后返回一个页面,可以将`result`元素的类型改为`dispatcher`。 总结来说,通过这种方式...