jfinal与bootstrap的登出实战详解


Posted in Javascript onNovember 27, 2017

前言:本篇推出“jfinal与bootstrap的登出实战”,旨在介绍如果通过a标签弹出登出确认框,然后发送退出请求到jfinal,然后再刷新页面的做法。主要难点在于1.如果通过a标签的内容弹出登出确认框,2.如何通过a标签刷新对应弹出的页面。

前端技术

1.构建a标签

<a href="${ctx}/mem/logout"  target="ajaxTodo" callback="ajaxDone" atitle="你确定要退出吗?" id="user_login_out" style="padding: 0 6px;">退出</a>

注意:

1. target=”ajaxTodo”,指定a标签要通过ajax发起请求。
2. callback=”ajaxDone”,指定a标签回调函数
3. atitle=”你确定要退出吗?”,指定确认信息

2.初始化a标签ajax事件

function initUI(_box) {
 var $p = $(_box || document);

 // dwz.ajax.js
 if ($.fn.ajaxTodo) {
  $("a[target=ajaxTodo]", $p).ajaxTodo();
 }
}

注意:

1. 页面加载完成后执行initUI方法,使target为ajaxTodo的a标签具有指定的ajaxTodo方法。

3.a标签的ajax请求

function ajaxTodo(url, callback) {
 var $callback = callback;
 if (!$.isFunction($callback)) {
  $callback = eval('(' + callback + ')');
 }

 var forwardUrl = window.location.href;
 if (url.indexOf("?") != -1) {
  url += "&forwardUrl=" + forwardUrl;
 } else {
  url += "?forwardUrl=" + forwardUrl;
 }
 $.ajax({
  type : 'POST',
  url : url,
  dataType : "json",
  cache : false,
  success : $callback,
  error : YUNM.ajaxError
 });
}

注意:

1. forwardUrl 记录登出的页面

4.为jquery对象增加ajaxTodo方法

$.fn.extend({
 ajaxTodo : function() {
 return this.each(function() {
  var $this = $(this);
  $this.click(function(event) {
  var url = unescape($this.attr("href")).replaceTmById($(event.target).parents(".unitBox:first"));
  YUNM.debug(url);
  if (!url.isFinishedTm()) {
   $.showErr($this.attr("warn"));
   return false;
  }
  var title = $this.attr("atitle");
  if (title) {
   $.showConfirm(title, function() {
   ajaxTodo(url, $this.attr("callback"));
   });
  } else {
   ajaxTodo(url, $this.attr("callback"));
  }
  event.preventDefault();
  });
 });
 },
});

5.回调函数

function ajaxDone(json) {
 YUNM.ajaxDone(json);
 if (json[YUNM.keys.statusCode] == YUNM.statusCode.ok || json[YUNM.keys.statusCode] == YUNM.statusCode.info) {
 // 如果指定了后调转页面,进行调转
 if (json.forwardUrl) {
  location.href = json.forwardUrl;
 }
 }
}

6.弹出weebox确认框

$.showConfirm = function(str, funcok, funcclose) {
 var okfunc = function() {
 $.weeboxs.close("yunm_confirm_box");
 funcok.call();
 };
 $.weeboxs.open(str, {
 boxid : 'yunm_confirm_box',
 contentType : 'text',
 showButton : true,
 showCancel : true,
 showOk : true,
 title : '确认',
 width : 280,
 type : 'wee',
 onopen : function() {
  init_ui_button();
 },
 onclose : funcclose,
 onok : okfunc
 });
};

function init_ui_button() {
 $("button.ui-button[init!='init']").each(function(i, o) {
 $(o).attr("init", "init"); // 为了防止重复初始化
 $(o).ui_button();
 });

}

jfinal技术

public void logout() {

 if (getSession().getAttribute("username") != null) {
  // 清除session
  getSession().removeAttribute("username");
 }

 ajaxDoneSuccess("登出成功!");

 renderJson();
 }

增加logout方法。

jfinal与bootstrap的登出实战详解

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript DOM学习第六章 表单实例
Feb 19 Javascript
javascript页面上使用动态时间具体实现
Mar 18 Javascript
QQ空间顶部折页撕开效果示例代码
Jun 15 Javascript
浅谈EasyUI中Treegrid节点的删除
Mar 01 Javascript
JS使用ajax从xml文件动态获取数据显示的方法
Mar 24 Javascript
js判断鼠标位置是否在某个div中的方法
Feb 26 Javascript
Select2.js下拉框使用小结
Oct 24 Javascript
通过网页查看JS源码中汉字显示乱码的解决方法
Oct 26 Javascript
Vue响应式原理详解
Apr 18 Javascript
JS实现图片放大镜插件详解
Nov 06 Javascript
react-intl实现React国际化多语言的方法
Sep 27 Javascript
在vue中给后台接口传的值为数组的格式代码
Nov 12 Javascript
JQuery 又谈ajax局部刷新
Nov 27 #jQuery
Bootstrap实现翻页效果
Nov 27 #Javascript
jQuery Datatables表头不对齐的解决办法
Nov 27 #jQuery
JS使用贪心算法解决找零问题示例
Nov 27 #Javascript
Vue.js实现分页查询功能
Nov 15 #Javascript
JS实现网页抢购功能(触发,终止脚本)
Nov 27 #Javascript
JS基于贪心算法解决背包问题示例
Nov 27 #Javascript
You might like
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
基于PHP开发中的安全防范知识详解
2013/06/06 PHP
使用Sphinx对索引进行搜索
2013/06/25 PHP
php中array_multisort对多维数组排序的方法
2020/06/21 PHP
php输出含有“#”字符串的方法
2017/01/18 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
通用javascript脚本函数库 方便开发
2009/10/13 Javascript
转换字符串为json对象的方法详解
2013/11/29 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
jQuery多条件筛选如何实现
2015/11/04 Javascript
快速掌握Node.js环境的安装与运行方法
2016/02/16 Javascript
axios post提交formdata的实例
2018/03/16 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
基于JS实现前端压缩上传图片的实例代码
2019/05/14 Javascript
微信小程序实现滚动加载更多的代码
2019/12/06 Javascript
jQuery实现html可联动的百分比进度条
2020/03/26 jQuery
[46:23]完美世界DOTA2联赛PWL S2 FTD vs Magma 第一场 11.20
2020/11/23 DOTA
python3+PyQt5实现使用剪贴板做复制与粘帖示例
2017/01/24 Python
使用python在本地电脑上快速处理数据
2017/06/22 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
python读csv文件时指定行为表头或无表头的方法
2019/06/26 Python
一篇文章弄懂Python中的可迭代对象、迭代器和生成器
2019/08/12 Python
python使用socket实现的传输demo示例【基于TCP协议】
2019/09/24 Python
详解Python绘图Turtle库
2019/10/12 Python
python的slice notation的特殊用法详解
2019/12/27 Python
CSS3实现苹果手机解锁的字体闪亮效果示例
2021/01/05 HTML / CSS
Html5 postMessage实现跨域消息传递
2016/03/11 HTML / CSS
澳大利亚优质的家居用品和生活方式公司:Bed Bath N’ Table
2019/04/16 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
学生会竞选自荐信
2013/10/12 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
婚礼女方父母答谢词
2015/01/04 职场文书
2015年暑期社会实践方案
2015/07/14 职场文书
Python可变集合和不可变集合的构造方法大全
2021/12/06 Python