会议管理系统SSM记录(二)


目录:

(1)整合Freemarker

(2)用户登录

(3)提取头部

(4)提取菜单抽取


(1)整合Freemarker

在pom.xml中加入Freemark依赖:

创建freemark-var.properties: 

 声明变量,在freemark中可能会用到这个变量:

在spring-servlet.xml中配置视图解析器、

 

创建ftl页面:

修改HelloController:

 

以上SSM+Freemark架构已经搭建好了 

 (2)用户登录

首先把静态文件拷贝到目录下:

把静态资源放在webapp下面,那么在mvc:配置文件spring-servlet.xml进行放行 

 把login.html修改后缀为ftl:

创建LoginController:

就可以访问到登录页面: 

创建Employee实体类:

创建EmployeeMapper接口,和 EmployeeMapper.xml:

 创建EmployeeService:

 在LoginController:书写登录请求:

登录成功时重定向,登录失败服务端跳转,返回的String,既可以服务端跳转既可以重定向

注入EmployeeService:

 @Autowired
 private EmployeeService employeeService;
//登录请求
    @PostMapping("/doLogin")
    public String doLogin(String username, String password, Model model, HttpSession httpSession){
        Employee employee = employeeService.doLogin(username,password);
        if (employee == null){
            model.addAttribute("error","用户名或密码错误,请重新登录");
            return "forward:/";
        }else {
            if (employee.getStatus() == 0){
                model.addAttribute("error","用户待审核");
                return "forward:/";
            }else if (employee.getStatus() == 2){
                model.addAttribute("error","审核未通过");
                return "forward:/";
            }else {
                httpSession.setAttribute("currentuser",employee);//存入session
                return "redirect:/notifications";//跳转到登录成功的页面
            }
        }
    }

 Controller调用EmployeeService:书写EmployeeService方法:

注入Mapper:

@Autowired
 private EmployeeMapper employeeMapper;

 EmployeeService调用EmployeeMapper接口方法

 //登录请求
    public Employee doLogin(String username, String password) {
        Employee employee = employeeMapper.loadEmpByUsername(username);//根据用户姓名查询方法
        if (employee == null || !employee.getPassword().equals(password)){
            return null;
        }
        return employee;
    }

 在EmployeeMapper中创建登录方法:

 //根据用户姓名查询方法
 Employee loadEmpByUsername(String username);

在EmployeeMapper.xml中书写sql语句:注意di要和接口方法对应

 <!--根据用户姓名查询方法-->
    <select id="loadEmpByUsername" resultType="com.xzb.meeting.model.Employee">
        select *
        from employee
        where username = #{username}
    </select>

在Login.ftl修改:给form加action:写controller方法的请求方式

 再加一个失败的提示信息:

 注意表单的要有name属性,在controller来接收这个输入的内容的:

输入错误的密码: 

 

输入一个未通过的用户:

 

输入正确的密码:登录成功跳转到notifications,这里只是还未写这个页面,所以报404

 我们把用户信息存入到session里面去

(3)提取头部

创建NoatificationsController:来进行跳转到登录页面

 修改后缀为ftl:

 

修改notifications页面:

 

 

所有页面都有这个可以把这些提取出来,提取成一个ftl页面。top.ftl

 

 

然后在notifications.ftl中引入这个页面:

 

所有页面都要更改成top.ftl:

 

 

 

 刷新一下:

登录成功之后:

 

可以先把所有的html页面修改后缀为ftl:

 

在每个页面上面再更改top.ftl 

(4)提取菜单抽取

添加一个权限判断的,角色为管理员2的才显示这个菜单:

没有登录看到的菜单:

 

在每个页面加入左侧菜单,需要把它提取出来:leftMenu.ftl

 

leftMenu.ftl:这里是最终的代码,添加了新的菜单栏

<div class="page-sidebar">
    <div class="sidebar-menugroup">
        <div class="sidebar-grouptitle">个人中心</div>
        <ul class="sidebar-menu">
            <li class="sidebar-menuitem"><a href="/notifications">最新通知</a></li>
            <li class="sidebar-menuitem active"><a href="/mybookings">我的预定</a></li>
            <li class="sidebar-menuitem"><a href="/mymeetings">我的会议</a></li>
            <li class="sidebar-menuitem"><a href="/changepassword">修改密码</a></li>
        </ul>
    </div>
    <div class="sidebar-menugroup">
        <div class="sidebar-grouptitle">人员管理</div>
        <ul class="sidebar-menu">
            <li class="sidebar-menuitem"><a href="/register">员工注册</a></li>
            <#if currentuser?? && (currentuser.role==2)>
                <li class="sidebar-menuitem"><a href="/admin/approveaccount">注册审批</a></li>
                <li class="sidebar-menuitem"><a href="/admin/searchemployees?status=1">搜索员工</a></li>
            </#if>

        </ul>
    </div>
    <div class="sidebar-menugroup">
        <div class="sidebar-grouptitle">部门管理</div>

        <ul class="sidebar-menu">
            <#if currentuser?? && (currentuser.role==2)>
                <li class="sidebar-menuitem"><a href="/admin/departments">部门管理</a></li>
            </#if>
        </ul>
    </div>

    <div class="sidebar-menugroup">
        <div class="sidebar-grouptitle">会议室管理</div>

        <ul class="sidebar-menu">
            <#if currentuser?? && (currentuser.role==2)>
                <li class="sidebar-menuitem"><a href="/admin/addmeetingroom">添加会议室</a></li>
                <li class="sidebar-menuitem"><a href="/meetingrooms">查看会议室</a></li>
            </#if>
        </ul>
    </div>

    <div class="sidebar-menugroup">
        <div class="sidebar-grouptitle">会议预定</div>
        <ul class="sidebar-menu">
            <li class="sidebar-menuitem"><a href="/bookmeeting">线上预定会议</a></li>
            <li class="sidebar-menuitem"><a href="/bookmeeting2">线下预定会议</a></li>
            <li class="sidebar-menuitem"><a href="/searchmeetings">搜索会议</a></li>
        </ul>
    </div>
</div>

然后再在每个页面进行引入菜单栏:

 

 

 

  管理员登录看到就多了:

左侧菜单:a标签添href以后添加对应的controller进行访问就可以了:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵俺第一专栏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值