jfinal与bootstrap的登出实战

简介: 版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/48546145 前言:本篇推出“jfinal与bootstrap的登出实战”,旨在介绍如果通过a标签弹出登出确认框,然后发送退出请求到jfinal,然后再刷新页面的做法。
版权声明:欢迎转载,请注明沉默王二原创。 https://blog.csdn.net/qing_gee/article/details/48546145

前言:本篇推出“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方法。

效果

这里写图片描述

相关文章
|
7月前
|
前端开发 JavaScript Python
Web实战:基于Django与Bootstrap的在线计算器
Web实战:基于Django与Bootstrap的在线计算器
192 0
|
编解码 前端开发 JavaScript
Web进阶:Day7 响应式、BootStrap、实战演练
Web进阶:Day7 响应式、BootStrap、实战演练
84 0
Web进阶:Day7 响应式、BootStrap、实战演练
|
前端开发 JavaScript 容器
Bootstrap实战 - 单页面网站
单页面结构简单、布局清晰,常常用来做手机 App 或者某个产品的下载介绍页面。现在,展示型网页整体趋向于单页网站设计,这样一次性把核心信息展现出来,对于用户来说更加直观和简单,能够快速了解一个产品。
293 0
Bootstrap实战 - 单页面网站
|
前端开发 容器
Bootstrap实战 - 评论列表
Bootstrap 是当前很受欢迎的前端框架,如何用 Bootstrap 快速完成一个网站?社交媒体网站盛行,人们常常会使用评论表达自己的观点,评论功能已然成为网站的一部分。一个基础的媒体对象由四个部分组成...
322 0
|
前端开发 数据安全/隐私保护 容器
Bootstrap实战 - 注册和登录
注册和登录在社交和商业网站中是必不可少的一个部分。
227 0
Bootstrap实战 - 注册和登录
|
移动开发 前端开发 JavaScript
Bootstrap实战 - 响应式布局
响应式布局就是一个网站能够兼容多个终端,而不是为每个终端做一个特定的版本。这个概念是为解决移动互联网浏览而诞生的。导航栏与轮播在大部分网站的头部占很高的比重,特别是导航栏,扮演着网站地图的角色。在响应式布局中,要求导航栏能够根据终端屏幕大小显示不同的样式。
159 0
Bootstrap实战 - 响应式布局
|
前端开发 JavaScript
jfinal与bootstrap的登出实战
jfinal与bootstrap的登出实战
129 0
jfinal与bootstrap的登出实战
N..
|
7月前
|
开发框架 前端开发 UED
Bootstrap的CSS组件
Bootstrap的CSS组件
N..
69 0
|
前端开发 容器
|
前端开发 容器