struts2中action返回"json"字符串
2016-10-09 15:40
309 查看
最近做项目,项目中使用了struts2结合spring。发现页面发送ajax请求到action中时,action的返回值只是一个return "json"(注:值为"json")。而页面中ajax的返回值则是json格式的值。对于较少使用struts2的同学来说,多少会有些迷惑。本人查了一些资料才搞明白struts2原来幕后做了一些工作来简化逻辑。那么struts2都做了什么又是如何在配置和代码中体现的呢?
配置如下:
需要action所在的package继承了json-default,或者继承的父包继承了json-default。配置action的结果返回类型的type为json。
<package name="json" namespace="/test" extends="struts-default,json-default" >
<action name="json" class="json.JsonAction" method="operatFun">
<result type="json">
<param name="root">jsonMap</param>
</result>
</action>
</package>
代码如下:
注意 dataMap 必须是action类中的一个属性值,且实现了get方法。
public class JsonAction extends BaseAction{
private Map<String,Object> jsonMap= new HashMap<String,Object>();
public Map<String, Object> getJsonMap() {
return jsonMap;
}
public void setJsonMap(Map<String, Object> jsonMap) {
this.jsonMap = jsonMap;
}
public String operatFun{
//一些逻辑处理
//给jsonMap赋值
jsonMap.put("name", "尼玛");
jsonMap.put("age", 10);
jsonMap.put("success", true);
return "json";
}
}
页面ajax:
jQuery.ajax({
type:"post",
url:"$homeModule.getTarget("/test/operatFun.action"),
async:true,
dataType: "json",
success:function(result){
if(result.success == true){
name=result.name;
age=result.age;
}else{
name="";
age=0;
}
},
error:function(result){
alert("失败,请重试");
}
});
});
至此,我们可以看到action返回了一个"json",而ajax得到了一个json。(是不是有点绕
)
相关文章推荐
- IE8下struts2 采用ajax提交表单,返回json字符串,解析不了,直接保存json字符串。提示下载action.
- ajax,调struts2的action方法后,返回json,字符串
- struts2新增json返回类型,自动将action中的的成员变量转换成json字符串
- 整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据
- struts2 ,action,返回JSON对象
- struts2 从action中返回json格式数据:
- struts2的action中返回json格式的数据
- struts2 action返回json格式
- Struts2 返回 json 的数组数据为 "空" 的解决方案
- Struts2中的JSON问题——后台返回JSON字符串到前台
- Struts2 使用ajax访问action,返回json格式数据,提示error:There is no result type defined for type 'json'
- Struts2中Action返回Json
- struts2怎么返回一个字符串给jsp?(使用json)
- struts2中action实现ModelDriven后无法返回json的问题
- SSH:Struts2的Action如何返回JSON格式的数据?
- 关于jQuery获取Action返回的JSON数据 项目真实案例 记录(Struts2)
- 整合struts2,jquery,json。采用jquery ajax,从struts2 action返回json类型数据
- Struts2 action通过struts2返回json方法(一)
- Struts2里的Action返回Json数据
- Struts2 直接返回字符串(可用于json)