Struts2.1.6配置与使用JSON教程

需积分: 0 54 下载量 104 浏览量 更新于2024-09-18 收藏 34KB DOC 举报
"Struts2.1.6中关于JSON的配置和使用的步骤与注意事项" 在Struts2.1.6版本中,JSON(JavaScript Object Notation)支持可以帮助开发人员将服务器端的数据以JSON格式传递给前端,方便进行异步交互。以下是配置和使用JSON的详细过程: 1. 添加JSON插件包: 首先,你需要在项目的`Web-INF/lib`目录下添加`jsonplugin-0.33.jar`,这是一个专门用于Struts2.1.6的JSON插件包。该包内包含了`struts-plugin.xml`文件,它是插件运行所必需的。请注意,不要使用更高版本的插件,因为可能存在如cglib相关的兼容性问题。 2. 配置Struts2配置文件: 在Struts2的配置文件(通常为`struts.xml`或`struts-default.xml`)中,需要为JSON数据创建一个新的包,并且指定其父包为`json-default`而不是默认的`struts-default`。这样,所有在这个包下的Action都会以JSON格式返回数据。以下是一个示例配置: ```xml <package name="json" namespace="/json" extends="json-default"> <!-- 测试Json的例子 --> <action name="jsonTest_*" class="jsonTest" method="{1}"> <result name="jsonres" type="json"/> </action> </package> ``` 在上述配置中,我们定义了一个名为`jsonTest_*`的Action,它会调用`jsonTest`类的动态方法(由`{1}`表示),并且设置结果类型为`json`,这意味着Action执行后的结果将被转换成JSON格式。 3. JSON数据的生成与接收: 在Action类中,你需要创建一个可以序列化为JSON的对象,例如一个HashMap或其他类型的Java对象。然后,在Action的执行方法中,将这个对象返回,Struts2的JSON插件会自动将其转换为JSON字符串。 ```java public class JsonTest { public HashMap<String, String> execute() { HashMap<String, String> result = new HashMap<>(); result.put("name", "wangsh"); result.put("pass", "qihuan"); return result; } } ``` 4. 前端使用Ajax接收JSON数据: 在前端,你可以使用jQuery的Ajax方法,比如`$.ajax`或`$.post`,来异步请求服务器并接收JSON数据。以下是一个使用jQuery 1.2.6的`$.ajax`的示例: ```html <%@ page language="java" import="java.util.*, java.io.*, javax.servlet.http.*" %> <%@ taglib prefix="s" uri="/struts-tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <script src="jquery-1.2.6.min.js"></script> <script> $.ajax({ url: "/json/jsonTest.action", type: "POST", dataType: "json", success: function(data) { console.log(data); // 解析并处理返回的JSON数据 }, error: function(xhr, status, error) { // 处理错误 } }); </script> ``` 在这个例子中,前端发送一个POST请求到`/json/jsonTest.action`,并期望接收JSON格式的数据。在`success`回调中,可以访问并处理服务器返回的JSON对象。 总结来说,配置Struts2.1.6的JSON支持主要包括:添加JSON插件包、配置Struts2配置文件以返回JSON结果,以及在Action中创建可序列化的对象和前端使用Ajax来接收并处理这些数据。这使得前后端之间的数据交换变得更加简单和高效。