action中json的应用
这篇文章重点介绍action中json数据的返回处理;假设须要看前端代码的一些特效或ajax的json接收,请看上一篇博客:http://blog.csdn.net/yangkai_hudong/article/details/24422817
1.须要依赖的方法
/**
* 获取PrintWriter
*
* @throws IOException
*/
public
static PrintWritergetPrintWriter(HttpServletResponse response)
throws IOException {
response.setContentType("text/plain;charset=utf-8");
response.setCharacterEncoding("UTF-8");
response.setHeader("Pragma",
"no-cache");
response.setHeader("Cache-Control",
"no-cache");
response.setDateHeader("Expires", 0);
PrintWriter out = response.getWriter();
return out;
}
/**
* 输出json操作
*
* @param out
* PrintWriter
* @param result
*/
public
voidresponseStr(PrintWriter out, String result) {
out.println(result);
out.flush();
out.close();
}
public String createJsonObject(Stringflag, String msg) {
JSONObject obj = new JSONObject();
try {
obj.put("flag", flag);
obj.put("msg", msg);
} catch (JSONException e) {
logger.error("生成JSON格式出错" + e);
obj.put("flag",
"0");
obj.put("msg",
"因为网络问题,数据处理失败");
} finally
{
return obj.toString();
}
}
2.action中的使用案例
public ActionForwardadd(ActionMapping mapping, ActionForm form, HttpServletRequest request,HttpServletResponse response)
throws IOException,AppException {
PrintWriter out = getPrintWriter(response);
String docTitle = Tool.getDefaultValue(request,
"docTitle", "");
String uid = Tool.getDefaultValue(request,
"uid", "");
try {
Long flag1 = WeiboWidgetDao.add(docTitle, uid);
Long flag2 = WeiboWidgetDao.addRel(docTitle, uid);
if (flag1 !=
null && flag2 != null) {
responseStr(out, createJsonObject("1",
"加入成功!"));
WeiboWidgetDao.updateCache("doc", docTitle);
// 更新词条缓存
} else {
responseStr(out, createJsonObject("0",
"加入词条微博失败!"));
}
} catch (Exception e) {
logger.debug("加入词条微博失败:" + e);
responseStr(out,createJsonObject("0",
"加入词条微博失败,发生异常!"));
}
return
null;
}
3.js中的使用案例
保存
function save() {
// 保存前验证
var docTitle = $("#win_docTitle").val();
var uid = $("#win_uid").val();
if (docTitle !=
"" && uid != "") {
$.ajax({
dataType: 'json',
type: 'POST',
url: '/weiboWidget.do',
data: {
'action' : $("#win_action").val(),
'id' : $("#win_id").val(),
'docTitle' : $("#win_docTitle").val(),
'uid' : $("#win_uid").val(),
},
success : function(data) {
if (data.flag == 1) {
alert(data.msg);
window.location.href=
"/weiboWidget.do?action=show";
}else {
alert(data.msg);
}
return
false;
},
error: function() {
alert("因为网络问题,保存数据失败!");
return
false;
}
});
}else {
alert("词条名和微博UID不能为空!");
return
false;
}
}
删除
/**
*
批量删除操作
*
*/
function deleteData() {
var idList =document.getElementsByName("id_list");
var ids =
"";
var docTitles =
"";
// 检查是否选择内容
for (i = 0; i < idList.length;i++) {
if(idList[i].checked) {
var temp =idList[i].value.split(";");
ids+= temp[0] +
",";
docTitles+= temp[1] +
",";
}
}
if (ids ==
"") {
alert("请选择纪录!");
}else {
$.post("/weiboWidget.do?action=delete&" +
new Date(), {
'ids' : ids,
'docTitles' : docTitles
},function(data) {
window.location.href=
"/weiboWidget.do?action=show";
return
false;
});
}
}
转载请指明:http://blog.csdn.net/yangkai_hudong
action中json的应用的更多相关文章
- Structs2中Action返回json到前台方法
1.传统方式JSON输出 这一点跟传统的Servlet的处理方式基本上一模一样,代码如下 01 public void doAction() throws IOException{ 02 ...
- Action中使用Json
1.前台页面中的ajax: //根据部门查询该部门下的用户列表 function doSelectDept(){ //1.获取部门 var dept = $("#toCompDept opt ...
- SSH框架中json传递失败
错误截图: 这个错误乍一看无从下手,报的都是框架底层的错误,于是查阅资料得到了答案. 错误原因:struts会将action中定义的一些变量序列化转换成json格式,需要调用对象的一系列get方法,并 ...
- jsp a标签传值到action中,action接收不到传值
因为需求,今天在action中加了一个marker属性,尝试了很多方法 set,get方法也生成了,但是就接收不到值. 这时我注意到action中有我之前使用ajax请求数据返回json格式数据,不以 ...
- Asp.Net Core中Json序列化处理整理
一.Asp.Net Core中的Json序列化处理使用的是Newtonsoft.Json,更多参考:C# Newtonsoft.Json JsonSerializerSettings配置序列化操作,C ...
- 在net中json序列化与反序列化 面向对象六大原则 (第一篇) 一步一步带你了解linq to Object 10分钟浅谈泛型协变与逆变
在net中json序列化与反序列化 准备好饮料,我们一起来玩玩JSON,什么是Json:一种数据表示形式,JSON:JavaScript Object Notation对象表示法 Json语法规则 ...
- 【Java EE 学习 70 下】【数据采集系统第二天】【Action中User注入】【设计调查页面】【Action中模型赋值问题】【编辑调查】
一.Action中User注入问题 Action中可能会经常用到已经登陆的User对象,如果每次都从Session中拿会显得非常繁琐.可以想一种方法,当Action想要获取User对象的时候直接使用, ...
- 9.Struts2在Action中获取request-session-application对象
为避免与Servlet API耦合在一起,方便Action类做单元测试. Struts2对HttpServletRequest.HttpSession.ServletContext进行了封装,构造了三 ...
- struts通过action返回json
其实struts2通过action返回json挺简单的,但是就是老要忘,所以索性写在博客上.好的,开始. 首先是引入必须的jar包: struts2-json-plugin-2.3.24.jar 然后 ...
随机推荐
- DNS隧道和工具
DNS Tunneling及相关实现 转自:http://www.freebuf.com/sectool/112076.html DNS Tunneling,是隐蔽信道的一种,通过将其他协议封装在DN ...
- Firefox 浏览器添加Linux jre插件
在安装 Java 平台时,Java 插件文件将作为该安装的一部分包含在内.要在 Firefox 中使用 Java,您需要从该发行版中的插件文件手动创建符号链接指向 Firefox 预期的其中一个位置. ...
- 【使用uWSGI和Nginx来设置Django和你的Web服务器】
目录 安装使用uWSGI 配置Nginx结合uWSGI supervisor Django静态文件与Nginx配置 @ *** 所谓WSGI . WSGI是Web服务器网关接口,它是一个规范,描述了W ...
- centos inotify-rsync配置
安装 yum -y install inotify-tools yum install rsync innotify说明 inotify介绍-- 是一种强大的.细颗粒的.异步的文件系统监控机制,*&a ...
- 紫书 例题 9-10 UVa 1626 (区间dp + 输出技巧)
当前区间f(i, j)分两种情况,一种是s[i]于s[j]符合要求,那么可以转移到f[i + 1][j - 1] 这样答案只会更小或者相等 第二种是直接分成两个部分, 即f[i][j] = f[i][ ...
- 基于promise用于浏览器和node.js的http客户端的axios
axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征: 从浏览器中创建 XMLHttpRequest 从 node.js 发出 http 请求 支 ...
- 【Uva 1629】 Cake slicing
[Link]: [Description] 给你一个n*m的格子; 然后里面零零散散地放着葡萄 让你把它切成若干个小矩形方格 使得每个小矩形方格都恰好包含有一个葡萄. 要求切的长度最短; 问最短的切割 ...
- 洛谷 P2171 Hz吐泡泡
P2171 Hz吐泡泡 题目背景 Hz大大是一种可爱的动物(神).他很喜欢吐泡泡(更喜欢写作业). 题目描述 这天,Hz大大心血来潮,吐了n个不同的泡泡玩(保证没有重复的泡泡).因为他还要写作业,所以 ...
- Hbuilder开发app实战-识岁06-face++的js实现【完结】
前言 因为识岁app比較简单.所以这节就完结吧, 当然另一些能够优化完好的地方,可是个人兴趣不是非常大, 有想继续完好的,源代码在这里:https://github.com/uikoo9/shisui ...
- Zabbix + Grafana
Grafana 简介 Grafana自身并不存储数据,数据从其它地方获取.需要配置数据源 Grafana支持从Zabbix中获取数据 Grafana优化了图形的展现,可以用来做监控大屏 Grafana ...