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实现仿银行密码输入框效果的代码
Dec 13 Javascript
JavaScript中的Location地址对象
Jan 16 Javascript
JS关键字变色实现思路及代码
Feb 21 Javascript
jQuery中click事件用法实例
Dec 26 Javascript
jQuery实现Select左右复制移动内容
Aug 05 Javascript
实例解析jQuery工具函数
Dec 01 Javascript
jquery表单提交带错误信息提示效果
Mar 09 Javascript
jQuery插件FusionCharts绘制2D柱状图和折线图的组合图效果示例【附demo源码】
Apr 10 jQuery
小程序实现多选框功能
Oct 30 Javascript
非常实用的jQuery代码段集锦【检测浏览器、滚动、复制、淡入淡出等】
Aug 08 jQuery
基于JS实现简单滑块拼图游戏
Oct 12 Javascript
JS数组方法some、every和find的使用详情
Oct 05 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中利用XML技术构造远程服务(上)
2006/10/09 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
php实现屏蔽掉黑帽SEO的搜索关键字
2015/04/15 PHP
在Yii2中使用Pjax导致Yii2内联脚本载入失败的原因分析
2016/03/06 PHP
thinkphp3.2框架中where条件查询用法总结
2019/08/13 PHP
让你的博客飘雪花超出屏幕依然看得见
2013/01/04 Javascript
原生js实现给指定元素的后面追加内容
2013/04/10 Javascript
javascript中var的重要性分析
2015/02/11 Javascript
关于延迟加载JavaScript
2015/05/05 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
jQuery中的siblings用法实例分析
2015/12/24 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
javascript阻止事件冒泡和浏览器的默认行为
2017/01/21 Javascript
Bootstrap 模态对话框只加载一次 remote 数据的完美解决办法
2017/07/09 Javascript
手写Node静态资源服务器的实现方法
2018/03/20 Javascript
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
javascript实现前端分页效果
2020/06/24 Javascript
JavaScript实现网页动态生成表格
2020/11/25 Javascript
Python的Django框架中的select_related函数对QuerySet 查询的优化
2015/04/01 Python
Python遍历pandas数据方法总结
2018/02/09 Python
Python设计模式之迭代器模式原理与用法实例分析
2019/01/10 Python
python多线程下信号处理程序示例
2019/05/31 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
彻底解决Python包下载慢问题
2020/11/15 Python
加拿大奢华时装品牌:Mackage
2018/01/10 全球购物
Bose加拿大官方网站:美国知名音响品牌
2019/03/21 全球购物
英国时尚配饰、珠宝和服装网站:KJ Beckett
2020/01/23 全球购物
房地产营销策划方案
2014/02/08 职场文书
乡镇三项教育实施方案
2014/03/30 职场文书
百日安全活动总结
2014/05/04 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
狮子林导游词
2015/02/03 职场文书
2015圣诞节贺卡寄语
2015/03/24 职场文书
导游词之五台山
2019/10/11 职场文书
22句经典语录:送给优柔寡断和胡思乱想的朋友们
2019/12/13 职场文书
python实现会员信息管理系统(List)
2022/03/18 Python