SSM酒店管理系统项目Day22

本文介绍了如何完善用户基本资料页面,包括输入管理账号、姓名、性别、邮箱和联系方式,以及如何实现修改密码功能,涉及Spring MVC、layui框架和数据库操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

27.页面完善

27.1 首页

首页我没写什么东西,只是放了个图片上去
desktop.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>首页</title>
</head>
<body>
 <div>
    <img src="${pageContext.request.contextPath}/statics/images/desktop.jpg" width="1100px" height="600px">
 </div>
</body>
</html>

PageController.java

/**
     * Description: 去到首页页面
     * @param:
     * @Return
     */
    @RequestMapping("/desktop")
    public String toDesktop(){
        return "desktop/desktop";
    }

27.2 基本资料

在这里插入图片描述
userMessage.jsp

<%--
  Created by IntelliJ IDEA.
  User: 12917
  Date: 2022/2/4
  Time: 19:26
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <!-- 获取CSRF Token -->
    <meta name="_csrf" content="${_csrf.token}"/>
    <!-- 获取CSRF头,默认为X-CSRF-TOKEN -->
    <meta name="_csrf_header" content="${_csrf.headerName}"/>
    <meta charset="utf-8">
    <title>基本资料</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="${pageContext.request.contextPath}/statics/layui/lib/layui-v2.5.5/css/layui.css" media="all">
    <link rel="stylesheet" href="${pageContext.request.contextPath}/statics/layui/css/public.css" media="all">
    <style>
        .layui-form-item .layui-input-company {width: auto;padding-right: 10px;line-height: 38px;}
    </style>
</head>
<body>
<div class="layuimini-container">
    <div class="layuimini-main">

        <div class="layui-form layuimini-form">
            <!-- 隐藏域,保存用户id -->

<%--            <div class="layui-form-item">--%>
<%--                <label class="layui-form-label required">管理账号</label>--%>
<%--                <div class="layui-input-block">--%>
<%--                    <input type="text" name="userName" lay-verify="required" lay-reqtext="管理账号不能为空" placeholder="请输入管理账号"  value="" class="layui-input">--%>
<%--                    <tip>填写自己管理账号的名称。</tip>--%>
<%--                </div>--%>
<%--            </div>--%>
            <div class="layui-form-item">
                <label class="layui-form-label required">用户姓名</label>
                <div class="layui-input-block">
                    <input type="text" name="realName" lay-verify="required" lay-reqtext="真实姓名不能为空" placeholder="请输入真实姓名"  value="" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label required" >用户性别</label>
                <div class="layui-input-block">
                    <input type="radio" name="sex" value="1" title="男" checked>
                    <input type="radio" name="sex" value="2" title="女" >
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label required">邮箱</label>
                <div class="layui-input-block">
                    <input type="text" name="email" id="email" lay-verify="required|email"  autocomplete="off" placeholder="请输入电子邮箱" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <label class="layui-form-label required">联系方式</label>
                <div class="layui-input-block">
                    <input type="text" name="phone" id="phone" lay-verify="required|phone" autocomplete="off" placeholder="请输入联系方式" class="layui-input">
                </div>
            </div>


            <div class="layui-form-item layui-form-text">
                <label class="layui-form-label">备注信息</label>
                <div class="layui-input-block">
                    <textarea name="remark" class="layui-textarea" placeholder="请输入备注信息"></textarea>
                </div>
            </div>

            <div class="layui-form-item">
                <div class="layui-input-block">
                    <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${pageContext.request.contextPath}/statics/layui/lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
<script src="${pageContext.request.contextPath}/statics/layui/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
    layui.use(['form','miniTab','jquery','layer'], function () {
        var form = layui.form,
            layer = layui.layer,
            miniTab = layui.miniTab,
            $ = layui.jquery;

        //获取<meta>标签中封装的CSRF Token
        var token = $("meta[name='_csrf']").attr("content");
        var header = $("meta[name='_csrf_header']").attr("content");
        //将头中的CSRF Token信息进行发送
        $(document).ajaxSend(function (e,xhr,options) {
            xhr.setRequestHeader(header,token);
        });

        //监听提交
        form.on('submit(saveBtn)', function (data) {

            $.post("/admin/CurrentUser/updateCurrentUser",data.field,function(result){
                if(result.success){
                    //提示
                    layer.alert(result.message,{icon:1});
                }else{
                    layer.alert(result.message,{icon:2});
                }

            },"json");

            return false;
        });

    });
</script>
</body>
</html>

index.jsp
在这里插入图片描述

PageController.java

   /**
     * Description: 去到基本资料页面
     * @param:
     * @Return
     */
    @RequestMapping("/userMessage")
    public String touserSetting(){
        return "user/userMessage";
    }

CurrentUserController.java

package com.manong.controller;

import com.alibaba.fastjson.JSON;
import com.manong.entity.SysUser;
import com.manong.service.SysUserService;
import com.manong.utils.PasswordUtil;
import com.manong.utils.SystemConstants;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.security.Principal;
import java.util.HashMap;
import java.util.Map;

@Controller
@RequestMapping("/admin/CurrentUser")
public class CurrentUserController {

    @Resource
    private SysUserService userService;

    /**
     * Description: 完善当前用户信息
     * @param:
     * @Return
     */
    @ResponseBody
    @RequestMapping("/updateCurrentUser")
    public String updateCurrentUser(SysUser sysUser,Principal principal){

        //获取当前用户
        SysUser loginUser = userService.getUserByUserName(principal.getName());

        sysUser.setId(loginUser.getId());
        sysUser.setUserName(loginUser.getUserName());
        sysUser.setPassword(loginUser.getPassword());
        
        Map<String,Object> map = new HashMap<String,Object>();

        if(userService.updateUser(sysUser)>0){

            map.put(SystemConstants.SUCCESS,true);
            map.put(SystemConstants.MESSAGE,"修改成功");
        }else{
            map.put(SystemConstants.SUCCESS,false);
            map.put(SystemConstants.MESSAGE,"修改失败");
        }
        return JSON.toJSONString(map);
    }
}

27.3 修改密码

在这里插入图片描述
userPassword.jsp

<%--
  Created by IntelliJ IDEA.
  User: 12917
  Date: 2022/2/4
  Time: 19:16
  To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<!DOCTYPE html>
<html>
<head>
    <!-- 获取CSRF Token -->
    <meta name="_csrf" content="${_csrf.token}"/>
    <!-- 获取CSRF头,默认为X-CSRF-TOKEN -->
    <meta name="_csrf_header" content="${_csrf.headerName}"/>
    <meta charset="utf-8">
    <title>修改密码</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <link rel="stylesheet" href="${pageContext.request.contextPath}/statics/layui/lib/layui-v2.5.5/css/layui.css" media="all">
    <link rel="stylesheet" href="${pageContext.request.contextPath}/statics/layui/css/public.css" media="all">
    <style>
        .layui-form-item .layui-input-company {width: auto;padding-right: 10px;line-height: 38px;}
    </style>
</head>
<body>
<div class="layuimini-container">
    <div class="layuimini-main">

        <div class="layui-form layuimini-form">
<%--            <div class="layui-form-item">--%>
<%--                <label class="layui-form-label required">旧的密码</label>--%>
<%--                <div class="layui-input-block">--%>
<%--                    <input type="password" name="old_password" lay-verify="required" lay-reqtext="旧的密码不能为空" placeholder="请输入旧的密码"  value="" class="layui-input">--%>
<%--                    <tip>填写自己账号的旧的密码。</tip>--%>
<%--                </div>--%>
<%--            </div>--%>

            <div class="layui-form-item">
                <label class="layui-form-label required">新的密码</label>
                <div class="layui-input-block">
                    <input type="password" name="new_password" lay-verify="required" lay-reqtext="新的密码不能为空" placeholder="请输入新的密码"  value="" class="layui-input">
                </div>
            </div>
            <div class="layui-form-item">
                <label class="layui-form-label required">新的密码</label>
                <div class="layui-input-block">
                    <input type="password" name="again_password" lay-verify="required" lay-reqtext="新的密码不能为空" placeholder="请输入新的密码"  value="" class="layui-input">
                </div>
            </div>

            <div class="layui-form-item">
                <div class="layui-input-block">
                    <button class="layui-btn layui-btn-normal" lay-submit lay-filter="saveBtn">确认保存</button>
                </div>
            </div>
        </div>
    </div>
</div>
<script src="${pageContext.request.contextPath}/statics/layui/lib/layui-v2.5.5/layui.js" charset="utf-8"></script>
<script src="${pageContext.request.contextPath}/statics/layui/js/lay-config.js?v=1.0.4" charset="utf-8"></script>
<script>
    layui.use(['form','miniTab','jquery','layer'], function () {
        var form = layui.form,
            layer = layui.layer,
            miniTab = layui.miniTab,
            $ = layui.jquery;

        //获取<meta>标签中封装的CSRF Token
        var token = $("meta[name='_csrf']").attr("content");
        var header = $("meta[name='_csrf_header']").attr("content");
        //将头中的CSRF Token信息进行发送
        $(document).ajaxSend(function (e,xhr,options) {
            xhr.setRequestHeader(header,token);
        });


        //监听提交
        form.on('submit(saveBtn)', function (data) {
            if(data.field.new_password != data.field.again_password){
                layer.msg("两次密码不一致,请保持一致");
                return false;
            }

            $.post("/admin/CurrentUser/updateCurrentUserPwd",data.field,function (){
                //等待500毫秒后跳转页面
                setTimeout(function (){
                    parent.location.href = '/login.jsp';
                },500);
                return false;
            });

            return false;
        });

    });
</script>
</body>
</html>

index.jsp
在这里插入图片描述

PageController.java

  /**
     * Description: 去到修改密码页面
     * @param:
     * @Return
     */
    @RequestMapping("/userPassword")
    public String touserPassword(){
        return "user/userPassword";
    }

CurrentUserController.java

/**
     * Description: 修改当前用户密码
     * @param:
     * @Return
     */
    @ResponseBody
    @RequestMapping("/updateCurrentUserPwd")
    public  String updateCurrentUserPwd(HttpServletRequest req, HttpSession session, Principal principal){

        String new_password = req.getParameter("new_password");

        //获取当前用户
        SysUser loginUser = userService.getUserByUserName(principal.getName());

        //更新密码
        loginUser.setPassword(PasswordUtil.encode(new_password));

        //更新完毕,删除session数据
        session.invalidate();

        Map<String, Object> map = new HashMap<String,Object>();

        if(userService.updatePwd(loginUser)>0){
            map.put(SystemConstants.SUCCESS,true);
            map.put(SystemConstants.MESSAGE,"修改成功");

        }else{
            map.put(SystemConstants.SUCCESS,false);
            map.put(SystemConstants.MESSAGE,"修改失败");
        }
        return JSON.toJSONString(map);
    }

SysUserService.java

    /**
     * 修改登陆用户密码
     * @param sysUser
     * @return
     */
    int updatePwd(SysUser sysUser);

SysUserServiceImpl.java

/**
     * 修改登陆用户密码
     *
     * @param
     * @return
     */
    @Override
    public int updatePwd(SysUser sysUser) {
        return userMapper.updatePwd(sysUser);
    }

SysUserMapper.java

    /**
     * 修改登陆用户密码
     * @param sysUser
     * @return
     */
    int updatePwd(SysUser sysUser);

SysUserMapper.xml

    <update id="updatePwd" parameterType="com.manong.entity.SysUser">
        update sys_user
        <set> 
         <if test="password != null">
          password = #{password,jdbcType=VARCHAR},
         </if>
        </set>
        where id = #{id,jdbcType=INTEGER}
    </update>

到这里项目就算是完成啦~ 学到就是赚到~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值