【SSH项目实战】国税协同平台-20.异步信息发布

简介:
上一次我们完成了文本编辑器的插入,这一节我们要对信息进行异步发布。

我们上次发表文章之后有一个“停用”和“发布”状态,

但是我们没有去做它的切换,所以在这里我们要用异步信息传输的方式去完成这个切换功能。

最后我们要的效果是点击“停用”或者“启用”的时候,在“状态”一栏会切换成“停用”或者“启用”。效果大概如此图:


我们使用Ajax异步处理这个操作。下面编码实现:
首先是在超链接部分添加判断,转向js方法doPublic(var id,var state),参数就是现在这个要改变状态的用户的id以及需要变成的状态。
<td id="show_<s:property value='infoId'/>" align="center"><s:property value="state==1?'发布':'停用'"/></td>
<td align="center">
	<span id="oper_<s:property value='infoId'/>">
	<s:if test="state==1">
		<a href="javascript:doPublic('<s:property value='infoId'/>',0)">停用</a>
	</s:if><s:else>
		<a href="javascript:doPublic('<s:property value='infoId'/>',1)">发布</a>
	</s:else>
	</span>
    <a href="javascript:doEdit('<s:property value='infoId'/>')">编辑</a>
    <a href="javascript:doDelete('<s:property value='infoId'/>')">删除

</a>
</td>

doPublic这个javascript方法详细:
//异步发布信息,信息的id以及将要改成的状态值
function doPublic(infoId,state){
	//1.更新信息状态
	$.ajax({
		url:"${basePath}tax/info_publicInfo.action",
		data:{"info.infoId":infoId,"info.state":state},
		type:"post",
		success:function(msg){
			//2.更新状态栏,操作栏的显示值
			if("更新状态成功"==msg){
				if(state==1){
					//说明信息状态已经被改成发布,操作栏被改为停用
					$("#show_"+infoId).html("发布");
					$("#oper_"+infoId).html('<a href="javascript:doPublic(\''+infoId+'\',0)">停用</a>');
				}else{
					$("#show_"+infoId).html("停用");
					$("#oper_"+infoId).html('<a href="javascript:doPublic(\''+infoId+'\',1)">发布</a>');
				}
			}else{
				alert("更新信息状态失败!");
			}
		},
		error:function(){
			alert("更新信息状态失败!");
		}
	});
	
}	

现在只差实现info_publicInfo.action方法:
在InfoAction中添加下面的方法
//异步发布信息
public void publicInfo(){
	try {
		if (info != null) {
			//1.更新信息状态
			Info tem = infoService.findObjectById(info.getInfoId());
			tem.setState(info.getState());
			infoService.update(tem);


			//2.输出更新结果
			HttpServletResponse response = ServletActionContext
					.getResponse();
			response.setContentType("text/html");
			ServletOutputStream outputStream = response.getOutputStream();
			outputStream.write("更新状态成功".getBytes("utf-8"));
			outputStream.close();
		}
	} catch (Exception e) {
		e.printStackTrace();
	}
} 

下面我们来测试:
首先我们的状态是“发布”,我们点击停用:


然后结果:

发现我们的状态已经改变

那么,到我们的数据库中查看,发现我们的state确实改变了:


至此我们的异步信息发布/停用状态更改功能完成!

转载请注明出处:http://blog.csdn.net/acmman/article/details/49741475

相关文章
|
1月前
|
Linux 网络安全
CentOS7服务器SSH登陆时自动显示服务器基础信息
CentOS7服务器SSH登陆时自动显示服务器基础信息
92 0
|
21天前
|
网络安全
ssh 登录欢迎信息 登录之前与登录之后
ssh 登录欢迎信息 登录之前与登录之后
13 0
|
7月前
|
Linux 网络安全
今天你花里胡哨了吗 --- 定制属于自己的linux ssh迎宾信息
今天你花里胡哨了吗 --- 定制属于自己的linux ssh迎宾信息
40 0
|
Shell 网络安全 开发工具
配置Git作者相关信息,以及SSH,全网最简单!
配置Git作者相关信息,以及SSH,全网最简单!
183 0
配置Git作者相关信息,以及SSH,全网最简单!
|
网络安全 数据库 数据安全/隐私保护
2022-渗透测试-信息收集-Metasploit(基于SSH协议)
2022-渗透测试-信息收集-Metasploit(基于SSH协议)
2022-渗透测试-信息收集-Metasploit(基于SSH协议)
|
网络协议 JavaScript 前端开发
NestJS 6.x折腾记- (0) 开胃菜, TypeORM 连接远程的MySQL(ssh tunnel)及Linux信息过滤裁切基础
昨天发现的框架,看了下官方文档,号称Nodejs版本的spring(java) 开发模式有ng6既视感,这对有ng经验的小伙伴来说,莫名的亲切.. 适合尝尝鲜,目前有1W+ star, 上正式线我觉得等version 6会稳定些, 这个系列我会以一个真实项目的开发进展作为基础,一边爬坑一边水文;
392 0
|
机器学习/深度学习 安全 网络安全