jfinal与bootstrap的登出实战-阿里云开发者社区

开发者社区> 沉默王二> 正文

jfinal与bootstrap的登出实战

简介: jfinal与bootstrap的登出实战
+关注继续查看

前端技术


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();
    }

效果

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
UI设计实战篇——利用Bootstrap框架制作查询页面的界面
Bootstrap框架是一个前端UI设计的框架,它提供了统一的UI界面,简化了设计界面UI的过程(缺点是定制了界面,调整的余地不是太大)。尤其是现在的响应时布局(我的理解是页面根据不同的分辨率,采用不同的页面元素的布局),在Bootstrap中很好的支持了,只要简单设置了属性,就能自动实现响应时布局,大大简化了程序员的界面的过程。
1196 0
《Java8实战》-读书笔记第一章(02)
从方法传递到Lambda 接着上次的Predicate,继续来了解一下,如果继续简化代码。 把方法作为值来传递虽然很有用,但是要是有很多类似与isHeavyApple和isGreenApple这种可能只用一两次的方法定义一堆确实有点烦人。
1664 0
Ubuntu 15.10下Qt5的安装实战
写照篇博客的目的就是因为最近要使用Qt,但是由于本人的系统是Ubuntu的,而网上大部分的讲解全是基于Windows的,所以就花费一些时间总结了一下我的安装过程,当然也是也为了能帮助到更多的博友。
1040 0
Spring 4与Struts 2项目基于XML的集成实战
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/48896203 Spring 4与Struts 2项目基于XML的集成实战 作者:chszs,版权所有,未经同意,不得转载。
649 0
Apache Struts 2的命名空间实战
版权声明:本文为博主chszs的原创文章,未经博主允许不得转载。 https://blog.csdn.net/chszs/article/details/48877493 Apache Struts 2的命名空间实战 作者:chszs,版权所有,未经同意,不得转载。
623 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载