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模板入门介绍
Sep 26 Javascript
Javascript 修改String 对象 增加去除空格功能(示例代码)
Nov 30 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
Jun 14 Javascript
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
Dec 08 Javascript
基于JavaScript实现图片剪切效果
Mar 07 Javascript
js实现延迟加载的几种方法
Apr 24 Javascript
关于javascript获取内联样式与嵌入式样式的实例
Jun 01 Javascript
JS实现的简单下拉框联动功能示例
May 11 Javascript
Vue.js中provide/inject实现响应式数据更新的方法示例
Oct 16 Javascript
Vue项目中如何使用Axios封装http请求详解
Oct 23 Javascript
《javascript设计模式》学习笔记七:Javascript面向对象程序设计组合模式详解
Apr 08 Javascript
jQuery实现简单QQ聊天框
Aug 27 jQuery
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(3) php 函数
2010/02/15 PHP
php 上传文件类型判断函数(避免上传漏洞 )
2010/06/08 PHP
CURL的学习和应用(附多线程实现)
2013/06/03 PHP
PHP使用GIFEncoder类生成的GIF动态图片验证码
2014/07/01 PHP
PHP速成大法
2015/01/30 PHP
php+jQuery递归调用POST循环请求示例
2016/10/14 PHP
php-fpm.conf配置文件中文说明详解及重要参数说明
2018/10/10 PHP
教你如何解密js/vbs/vbscript加密的编码异处理小结
2008/06/25 Javascript
详解JavaScript语法对{}处理的坑爹之处
2014/06/05 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
详解jQuery UI库中文本输入自动补全功能的用法
2016/04/23 Javascript
详解node+express+ejs+bootstrap构建项目
2017/09/27 Javascript
移动端效果之Swiper详解
2017/10/09 Javascript
详解基于 Nuxt 的 Vue.js 服务端渲染实践
2017/10/24 Javascript
AngularJS实现的2048小游戏功能【附源码下载】
2018/01/03 Javascript
微信小程序全局变量改变监听的实现方法
2019/07/15 Javascript
微信小程序—setTimeOut定时器的问题及解决
2019/07/26 Javascript
多页vue应用的单页面打包方法(内含打包模式的应用)
2020/06/11 Javascript
[50:28]LGD女子学院第三期 DOTA2复仇之魂教学
2013/12/24 DOTA
Python 装饰器深入理解
2017/03/16 Python
Python pymongo模块用法示例
2018/03/31 Python
Python爬虫之UserAgent的使用实例
2019/02/21 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
瑞士隐形眼镜和护理产品网上商店:Linsenklick
2019/10/21 全球购物
给老师的道歉信
2014/01/11 职场文书
詹天佑教学反思
2014/04/30 职场文书
信息管理与信息系统专业求职信
2014/06/21 职场文书
建筑施工安全责任书
2014/07/24 职场文书
新郎新娘答谢词
2015/01/04 职场文书
罚款通知怎么写
2015/04/22 职场文书
党员“一帮一”活动总结
2015/05/07 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
Java 将PPT幻灯片转为HTML文件的实现思路
2021/06/11 Java/Android
Node实现搜索框进行模糊查询
2021/06/28 Javascript
Opencv实现二维直方图的计算及绘制
2021/07/21 Python
SpringBoot全局异常处理方案分享
2022/05/25 Java/Android