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中的闭包原理分析
Mar 08 Javascript
validator验证控件使用代码
Nov 23 Javascript
js实现全屏漂浮广告移入光标停止移动
Dec 02 Javascript
jQuery判断一个元素是否可见的方法
Jun 05 Javascript
JS基于myFocus库实现各种功能的tab选项卡切换效果
Sep 19 Javascript
开启Javascript中apply、call、bind的用法之旅模式
Oct 28 Javascript
点评js异步加载的4种方式
Dec 22 Javascript
简单谈谈axios中的get,post方法
Jun 25 Javascript
vue2.0 datepicker使用方法
Feb 04 Javascript
Vue.js 表单控件操作小结
Mar 29 Javascript
VUE实现图片验证码功能
Nov 18 Javascript
javascript设计模式 ? 迭代器模式原理与用法实例分析
Apr 17 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中isset与array_key_exists的区别实例分析
2015/06/02 PHP
PHP基于双向链表与排序操作实现的会员排名功能示例
2017/12/26 PHP
PHP实现的简单组词算法示例
2018/04/10 PHP
PHP批斗大会之缺失的异常详解
2019/07/09 PHP
ajax无刷新动态调用股票信息(改良版)
2008/11/01 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
基于jQuery的input输入框下拉提示层(自动邮箱后缀名)
2012/06/14 Javascript
开源的javascript项目Kissy介绍
2014/11/28 Javascript
举例讲解AngularJS中的模块
2015/06/17 Javascript
基于d3.js实现实时刷新的折线图
2016/08/03 Javascript
jQuery设置和获取select、checkbox、radio的选中值方法
2017/01/01 Javascript
JS简单实现自定义右键菜单实例
2017/05/31 Javascript
Angular指令之restict匹配模式的详解
2017/07/27 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
vue中的过滤器实例代码详解
2019/06/06 Javascript
vue实现页面滚动到底部刷新
2019/08/16 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
2020/05/11 Javascript
解决python 输出是省略号的问题
2018/04/19 Python
Django中间件实现拦截器的方法
2018/06/01 Python
python 判断参数为Nonetype类型或空的实例
2018/10/30 Python
关于Django ForeignKey 反向查询中filter和_set的效率对比详解
2018/12/15 Python
Python完成毫秒级抢淘宝大单功能
2019/06/06 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
Django实现将views.py中的数据传递到前端html页面,并展示
2020/03/16 Python
Python 列表中的修改、添加和删除元素的实现
2020/06/11 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
UGG英国官方网站:UGG UK
2018/02/08 全球购物
Yahoo-PHP面试题3
2012/01/14 面试题
自荐书格式
2013/12/01 职场文书
主持人婚宴答谢词
2014/01/28 职场文书
建议书的格式
2014/05/12 职场文书
大学新生入学教育方案
2014/05/16 职场文书
领导班子群众路线与四风问题对照检查材料思想汇报
2014/10/11 职场文书
详解前端任务构建利器Gulp.js使用指南
2021/04/30 Javascript
海康机器人重磅发布全新算法开发平台VM4.2
2022/04/21 数码科技