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 相关文章推荐
DIY jquery plugin - tabs标签切换实现代码
Dec 11 Javascript
Vue学习之路之登录注册实例代码
Jul 06 Javascript
JavaScript 中的 this 简单规则
Sep 19 Javascript
EasyUI Tree树组件无限循环的解决方法
Sep 27 Javascript
实例讲解Vue.js中router传参
Apr 22 Javascript
Vue 动态设置路由参数的案例分析
Apr 24 Javascript
详解小程序不同页面之间通讯的解决方案
Nov 23 Javascript
vue.js高德地图实现热点图代码实例
Apr 18 Javascript
jquery实现进度条状态展示
Mar 26 jQuery
javascript设计模式 ? 建造者模式原理与应用实例分析
Apr 10 Javascript
vue中jsonp插件的使用方法示例
Sep 10 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 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 和 COM
2006/10/09 PHP
php.ini 中文版
2006/10/28 PHP
php的memcache类分享(memcache队列)
2014/03/26 PHP
php使用session二维数组实例
2014/11/06 PHP
smarty缓存用法分析
2014/12/16 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
PHP基于递归实现的约瑟夫环算法示例
2017/08/27 PHP
ThinkPHP整合datatables实现服务端分页的示例代码
2018/02/10 PHP
php查询内存信息操作示例
2019/05/09 PHP
兼容多浏览器的字幕特效Marquee的通用js类
2008/07/20 Javascript
javascript基于jQuery的表格悬停变色/恢复,表格点击变色/恢复,点击行选Checkbox
2008/08/05 Javascript
通过隐藏option实现select的联动效果
2009/11/10 Javascript
jQuery Ajax自定义分页组件(jquery.loehpagerv1.0)实例详解
2017/05/01 jQuery
微信小程序movable view移动图片和双指缩放实例代码
2017/08/08 Javascript
微信小程序开发教程之增加mixin扩展
2017/08/09 Javascript
Webpack中雪碧图插件使用详解
2018/05/25 Javascript
vscode下的vue文件格式化问题
2018/11/28 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
JavaScript字符串处理常见操作方法小结
2019/11/15 Javascript
微信小程序顶部导航栏可滑动并选中放大
2019/12/05 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
[47:12]TFT vs Secret Supermajor小组赛C组 BO3 第三场 6.3
2018/06/04 DOTA
python文件和目录操作方法大全(含实例)
2014/03/12 Python
python脚本内运行linux命令的方法
2015/07/02 Python
使用Python写CUDA程序的方法
2017/03/27 Python
python多进程实现进程间通信实例
2017/11/24 Python
Python通过Pygame绘制移动的矩形实例代码
2018/01/03 Python
详解Python3.6的py文件打包生成exe
2018/07/13 Python
python3格式化字符串 f-string的高级用法(推荐)
2020/03/04 Python
《日月潭》教学反思
2014/02/28 职场文书
车辆转让协议书
2014/09/24 职场文书
处级领导干部四风问题自我剖析材料
2014/09/29 职场文书
民事二审代理词
2015/05/25 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python
MySQL库表太大怎么办? 数据库分库分表项目实践
2022/04/11 MySQL