jfinal与bootstrap的登录跳转实战(1)-阿里云开发者社区

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

jfinal与bootstrap的登录跳转实战(1)

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

前言:终于来了一篇有质量的文章,我个人感觉非常不错,《jfinal与bootstrap之间的登录跳转实战》。具体内容包含有点击登录弹出模态框、点击登录确认按钮后的validate、jfinal的validate、jfinal的session管理、ajax请求与返回信息处理、页面间智能跳转。


弹出模态框以及jquery validate可以参照jquery weebox总结、弹出窗口不居中显示?、jquery validate初上手系列文章。


从jfinal的validate说起


当然你可以参考jfinal提供的帮助文档,我当然也必须是参照了官方文档,当然对于这种开源技术每个人在使用的过程中肯定有千奇百态的问题,那么依据我的实战结果,我想再赘述一遍也是非常有必要的。


1.指定config中的路由


me.add("/login", MembersController.class, "/pages/login");


2.编写conroller类

public class MembersController extends BaseController {
    @Before(MembersValidator.class)
    @ActionKey("/login")
    public void login() {

        // 获取用户名
        String name = getPara("username");
        // 获取密码
        String password = getPara("password");

        Members mem = Members.me.getMemByNamePasswd(name, CipherUtils.generatePassword(password));

        if (mem != null) {
            // 保存session
            getSession().setAttribute("username", name);

            // 最后登录ip
            mem.set("lastip", getRequest().getRemoteHost());
            mem.set("lastvisit", DateUtils.getCurrentTime());

            mem.update();

            ajaxDoneSuccess("登录成功!");
        } else {
            ajaxDoneError("用户不存在!");
        }

        // 跳转到前台发起请求的路径
        renderJson();

    }
}


注意:


使用before绑定validate

使用actionkey绑定前端请求action名

使用getSession().setAttribute来操作session,同时前端稍后介绍如何使用

封装ajaxDone系列方法进行数据格式绑定,前端稍后介绍

使用renderJson方法对ajax请求返回结果数据进行json格式输出

接下来你需要看看我封装的baseController

3.BaseController

package com.hc.jf.controller;

import com.jfinal.core.Controller;

public class BaseController extends Controller {

    protected void ajaxDone(int statusCode, String message) {
        setAttr("statusCode", statusCode);
        setAttr("message", message);

        // 跳转路径
        String forwardUrl = getPara("forwardUrl");
        if (forwardUrl == null || forwardUrl.equals("")) {
            forwardUrl = getRequest().getRequestURL().toString();
        }

        setAttr("forwardUrl", forwardUrl);
        setAttr("callbackType", getPara("callbackType"));
    }

    protected void ajaxDoneSuccess(String message) {
        ajaxDone(200, message);
    }

    protected void ajaxDoneInfo(String message) {
        ajaxDone(201, message);
    }

    protected void ajaxDoneSuccess(String message, String forwarUrl) {
        ajaxDone(200, message);
    }

    protected void ajaxDoneError(String message) {
        ajaxDone(300, message);
    }

    protected void ajaxDoneError(String message, String forwarUrl) {
        ajaxDone(300, message);
    }
}

注意:


分别封装成功、错误、info级别的信息

增加了statusCode、message、forwardUrl、callbackType四个属性。

以上两个属性和前端也有对应,稍后介绍。


4.MembersValidator

package com.hc.jf.validator;

import com.hc.jf.entity.Members;
import com.jfinal.core.Controller;
import com.jfinal.validate.Validator;

public class MembersValidator extends Validator {

    @Override
    protected void validate(Controller controller) {
        validateRequiredString("username", "usernameMsg", "请输入用户名!");
        validateRequiredString("password", "passwordMsg", "请输入密码!");
    }

    @Override
    protected void handleError(Controller controller) {
        controller.keepModel(Members.class);
        controller.render("login.jsp");
    }

}

注意:


这个validate确实没什么屌用,因为前端已经使用jquery validate进行了check,然而请注意,如果你没有使用jquery的或者为了网络安全等等,有这个也不错。

好吧,我其实不想加入这个validate,但是我觉得可以我还没有想到用处,但是心有戚戚焉,觉得它还是有用的。


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

相关文章
spring 整合 mybatis| 学习笔记
快速学习 spring 整合 mybatis
7 0
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(1)
架构师眼中的文化:组织不扁平,3天后信息衰减到20%(1)
5 0
50份架构文档荟萃(分布式事务-缓存-消息-搜索、电商、支付,多活...)
50份架构文档荟萃(分布式事务-缓存-消息-搜索、电商、支付,多活...)
3 0
实操微服务设计-从需求、领域模型、业务能力到服务(2)
实操微服务设计-从需求、领域模型、业务能力到服务(2)
4 0
​中台战略:业务中台的8个设计原则
​中台战略:业务中台的8个设计原则
4 0
有关中台的误解以及精选中台解读6篇(阿里腾讯小米等)
有关中台的误解以及精选中台解读6篇(阿里腾讯小米等)
3 0
程序员自我发展之路:从态度到方法
程序员自我发展之路:从态度到方法
3 0
都是血泪,程序员傍身的生存法则(上)
都是血泪,程序员傍身的生存法则(上)
3 0
+关注
沉默王二
微信搜索「沉默王二」,回复关键字「00」获取硬核计算机基础资料。
1084
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载