Struts2.1.6配置与使用JSON教程
需积分: 0 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来接收并处理这些数据。这使得前后端之间的数据交换变得更加简单和高效。
2019-03-17 上传
2012-03-27 上传
2011-08-19 上传
2011-08-19 上传
2011-12-27 上传
2009-11-06 上传
2012-12-24 上传
huixiaowen_1987
- 粉丝: 1
- 资源: 10
最新资源
- NIST REFPROP问题反馈与解决方案存储库
- 掌握LeetCode习题的系统开源答案
- ctop:实现汉字按首字母拼音分类排序的PHP工具
- 微信小程序课程学习——投资融资类产品说明
- Matlab犯罪模拟器开发:探索《当蛮力失败》犯罪惩罚模型
- Java网上招聘系统实战项目源码及部署教程
- OneSky APIPHP5库:PHP5.1及以上版本的API集成
- 实时监控MySQL导入进度的bash脚本技巧
- 使用MATLAB开发交流电压脉冲生成控制系统
- ESP32安全OTA更新:原生API与WebSocket加密传输
- Sonic-Sharp: 基于《刺猬索尼克》的开源C#游戏引擎
- Java文章发布系统源码及部署教程
- CQUPT Python课程代码资源完整分享
- 易语言实现获取目录尺寸的Scripting.FileSystemObject对象方法
- Excel宾果卡生成器:自定义和打印多张卡片
- 使用HALCON实现图像二维码自动读取与解码