Struts2.1.6配置与使用JSON教程
需积分: 0 52 浏览量
更新于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来接收并处理这些数据。这使得前后端之间的数据交换变得更加简单和高效。
111 浏览量
122 浏览量
111 浏览量
117 浏览量
2012-03-27 上传
166 浏览量
2011-12-27 上传
2009-11-06 上传
2011-08-19 上传
huixiaowen_1987
- 粉丝: 1
- 资源: 10
最新资源
- Meets:具有AI集成的下一代社交计划应用程序。 华盛顿大学202021冬季编码训练营最佳UX和UI设计奖以及“人民选择奖”
- katie
- Macrobond:Macrobond API的非官方熊猫包装
- Django-2.0.13.tar.gz
- pdf_converter
- Drawing:代码使草图软件中的手指绘图应用程序
- ec2recovery
- 转换tfrecord代码.zip
- qbaka-angular:Qbaka 的 Angular 插件
- Jukebox:TERA工具箱模块,可让您使用便携式自动点唱机在任何地方收听一些很棒的音乐!
- Android仿微信摇骰子游戏
- Oh Remind Me!-crx插件
- IBM x3650 m2网卡驱动32位 for win2003/2008 32位
- 控制任何外部IE内核浏览器-易语言
- ratings-api:在Redis上构建评级API的简单实现示例
- System-programming