在用struts2框架时在Action中返回json数据
2016-05-17 23:28
375 查看
在上一篇搭建了struts2开发环境,之前开发一些小项目都是直接使用的servlet,在servlet中返回json数据很容易:在response对象中打开流直接写入json数据就好了。今天学习struts2时也想在action中返回json数据,但是action中并不能直接像servlet那样返回json数据。在这里记录下今天的收获吧!
在action中返回json数据有两种方法:
1.在action中得到response对象,然后就和在servlet中返回json数据是相同的。
2.struts2对json的扩展,下面主要介绍这种方法.
public class TestAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private Map<String,Object> jsonData;
public String getJsonList(){
jsonData = new HashMap<String,Object>();
jsonData.put("one", "one's apple");
return Action.SUCCESS;
}
public Map<String,Object> getJsonData() {
return jsonData;
}
public void setJsonData(Map<String,Object> jsonData) {
this.jsonData = jsonData;
}
}
<package name="textJson" namespace="/textJson" extends="json-default">
<action name="getJsonList" class="cui.schat.action.TestAction" method="getJsonList">
<result type="json">
<param name="root">jsonData</param> <!-- 这里的jsonData对应action里要返回的map对象 -->
</result>
</action>
</package>
在action中返回json数据有两种方法:
1.在action中得到response对象,然后就和在servlet中返回json数据是相同的。
2.struts2对json的扩展,下面主要介绍这种方法.
导入需要的jar包
要使用struts2对json的扩展,我们需要导入struts2-json-plugin-2.1.8.1.jar和xwork-core-2.1.6.jar.使用这两个版本的包完美运行,其他版本可能会有差异导致失败!!!编写action
struts2把json看成时map对象(键值对,json本身也就是这样....),所以我们在写action时只要有一个map对象就可以了,struts2会对把这个map对象自动的返回给请求页面(需要特定的配置).例如:public class TestAction extends ActionSupport{
/**
*
*/
private static final long serialVersionUID = 1L;
private Map<String,Object> jsonData;
public String getJsonList(){
jsonData = new HashMap<String,Object>();
jsonData.put("one", "one's apple");
return Action.SUCCESS;
}
public Map<String,Object> getJsonData() {
return jsonData;
}
public void setJsonData(Map<String,Object> jsonData) {
this.jsonData = jsonData;
}
}
配置struts.xml
返回json数据的action必须extends json-default包,而且result type属性必须为json<package name="textJson" namespace="/textJson" extends="json-default">
<action name="getJsonList" class="cui.schat.action.TestAction" method="getJsonList">
<result type="json">
<param name="root">jsonData</param> <!-- 这里的jsonData对应action里要返回的map对象 -->
</result>
</action>
</package>
相关文章推荐
- 使用 Python 处理 JSON 格式的数据
- XML 与 JSON 优劣对比
- VBA将excel数据表生成JSON文件
- newtonsoft.json解析天气数据出错解决方法
- vbs 解析json jsonp的方法
- Ruby和Ruby on Rails中解析JSON格式数据的实例教程
- Extjs4如何处理后台json数据中日期和时间
- C#实现将类的内容写成JSON格式字符串的方法
- JQuery ajax返回JSON时的处理方式 (三种方式)
- jquery JSON的解析方式示例介绍
- c#版json数据解析示例分享
- ASP JSON类文件的使用方法
- C# JSON格式化转换辅助类 ConvertJson
- C#实现对Json字符串处理实例
- C#实现Json转Unicode的方法
- php解析json数据实例
- PHP中JSON的应用技巧
- PHP6 先修班 JSON实例代码
- 关于JSON以及JSON在PHP中的应用技巧
- .Net中的json操作类用法分析