本文为大家分享了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;
}
$.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方法。
效果:
如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:
Bootstrap学习教程
Bootstrap实战教程
Bootstrap插件使用教程
以上就是本文的全部内容,希望大家动手实现Bootstrap+jfinal退出系统弹出确认框,希望大家喜欢这篇文章,谢谢大家的阅读。
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]
