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的6个Tab选项卡插件
Sep 03 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
JS 打印界面的CSS居中代码适用所有浏览器
Mar 19 Javascript
javascript屏蔽右键代码
May 15 Javascript
用模版生成HTML的的框架jquery.tmpl使用详解
Jan 07 Javascript
JS脚本根据手机浏览器类型跳转WAP手机网站(两种方式)
Aug 04 Javascript
谈谈JavaScript自定义回调函数
Oct 18 Javascript
jQuery实现textarea自动增长宽高的方法
Dec 18 Javascript
Vue.js实战之组件之间的数据传递
Apr 01 Javascript
关于JavaScript的单双引号嵌套问题
Aug 20 Javascript
bootstrap响应式工具使用详解
Nov 29 Javascript
JavaScript高级程序设计之基本引用类型
Nov 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
星际争霸任务指南——人族
2020/03/04 星际争霸
php访问查询mysql数据的三种方法
2006/10/09 PHP
PHP 正则表达式之正则处理函数小结(preg_match,preg_match_all,preg_replace,preg_split)
2012/10/05 PHP
CakePHP框架Session设置方法分析
2017/02/23 PHP
纯CSS3实现质感细腻丝滑按钮
2021/03/09 HTML / CSS
JS调用CS里的带参方法实例
2013/08/01 Javascript
node.js中的http.get方法使用说明
2014/12/14 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
js实现顶部可折叠的菜单工具栏效果实例
2015/05/09 Javascript
浅谈javascript中onbeforeunload与onunload事件
2015/12/10 Javascript
Bootstrap模态框(modal)垂直居中的实例代码
2016/08/18 Javascript
JS实战篇之收缩菜单表单布局
2016/12/10 Javascript
JavaScript数组去重的6个方法
2017/01/21 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
基于vue-element组件实现音乐播放器功能
2018/05/06 Javascript
Vue微信项目按需授权登录策略实践思路详解
2018/05/07 Javascript
js 实现ajax发送步骤过程详解
2019/07/25 Javascript
vue.config.js常用配置详解
2019/11/14 Javascript
pycharm 使用心得(九)解决No Python interpreter selected的问题
2014/06/06 Python
python 打印对象的所有属性值的方法
2016/09/11 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
Django框架实现分页显示内容的方法详解
2019/05/10 Python
python使用pyecharts库画地图数据可视化的实现
2020/03/25 Python
企业党员一句话承诺
2014/05/30 职场文书
消防安全宣传口号
2014/06/10 职场文书
2015年求职自荐信范文
2015/03/04 职场文书
2015社区精神文明建设工作总结
2015/04/21 职场文书
2015年学校安全工作总结
2015/04/22 职场文书
2016全国“质量月”活动标语口号
2015/12/26 职场文书
用人单位的规章制度,怎样制定才是有效的?
2019/07/09 职场文书
Python 多线程之threading 模块的使用
2021/04/14 Python
详解运行Python的神器Jupyter Notebook
2021/06/03 Python
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL