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 相关文章推荐
jquery HotKeys轻松搞定键盘事件代码
Aug 30 Javascript
JS OOP包机制,类创建的方法定义
Nov 02 Javascript
用jQuery模拟页面加载进度条的实现代码
Dec 19 Javascript
用js读、写、删除Cookie代码分享及详细注释说明
Jun 05 Javascript
innerHTML动态添加html代码和脚本兼容多个浏览器
Oct 11 Javascript
jQuery检测鼠标左键和右键点击的方法
Mar 17 Javascript
javaScript中Math()函数注意事项
Jun 18 Javascript
js+CSS实现模拟华丽的select控件下拉菜单效果
Sep 01 Javascript
一起学写js Calender日历控件
Apr 14 Javascript
深入浅析JS是按值传递还是按引用传递(推荐)
Sep 18 Javascript
如何把vuejs打包出来的文件整合到springboot里
Jul 26 Javascript
微信小程序实现点击效果
Jun 21 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速成大法
2015/01/30 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
PHP中mysqli_get_server_version()的实例用法
2020/02/03 PHP
JavaScript Event学习第五章 高级事件注册模型
2010/02/07 Javascript
js最简单的拖拽效果实现代码
2010/09/24 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
仿百度的关键词匹配搜索示例
2013/09/25 Javascript
javascript入门教程基础篇
2015/11/16 Javascript
jQuery 1.9.1源码分析系列(十)事件系统之主动触发事件和模拟冒泡处理
2015/11/24 Javascript
编写高质量JavaScript代码的基本要点
2016/03/02 Javascript
jQuery如何防止Ajax重复提交
2016/10/14 Javascript
Web前端框架bootstrap实战【第一次接触使用】
2016/12/28 Javascript
vue双花括号的使用方法 附练习题
2017/11/07 Javascript
JavaScript实现二叉树定义、遍历及查找的方法详解
2017/12/20 Javascript
Angularjs实现多图片上传预览功能
2018/07/18 Javascript
webpack4简单入门实例
2018/09/06 Javascript
Iview Table组件中各种组件扩展的使用
2018/10/20 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
Django模板继承 extend标签实例代码详解
2019/05/16 Javascript
python批量制作雷达图的实现方法
2016/07/26 Python
Python入门之三角函数atan2()函数详解
2017/11/08 Python
Python中enumerate()函数编写更Pythonic的循环
2018/03/06 Python
Python爬虫实现全国失信被执行人名单查询功能示例
2018/05/03 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
Python 生成一个从0到n个数字的列表4种方法小结
2019/11/28 Python
Python如何使用argparse模块处理命令行参数
2019/12/11 Python
基于jupyter代码无法在pycharm中运行的解决方法
2020/04/21 Python
利用scikitlearn画ROC曲线实例
2020/07/02 Python
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
结婚周年感言
2014/02/24 职场文书
幼儿园课题实施方案
2014/05/14 职场文书
网络工程专业大学生求职信
2014/10/01 职场文书
2015年安置帮教工作总结
2015/05/22 职场文书
决心书格式及范文
2019/06/24 职场文书
Python中的程序流程控制语句
2022/02/24 Python
Golang Web 框架Iris安装部署
2022/08/14 Python