本文為大家分享了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方法。
效果:
如果大家還想深入學習,可以點擊這裡進行學習,再為大家附3個精彩的專題:
Bootstrap學習教程
Bootstrap實戰教程
Bootstrap插件使用教程
以上就是本文的全部內容,希望大家動手實現Bootstrap+jfinal退出系統彈出確認框,希望大家喜歡這篇文章,謝謝大家的閱讀。