• 会议信息管理系统SSM记录(五)



    目录:

    (1)搜索员工

    (2)查看会议室

    (3)会议室详情

    (4)添加会议室


    (1)搜索员工

    创建EmployeeController:

    1. public static final Integer PAGE_SIZE = 10;//定义默认显示10
    2. /**
    3. * 分页查询员工
    4. * 获取员工的数量
    5. *
    6. * @param employee 员工
    7. * @param page 页数
    8. * @param model
    9. * @return 搜索员工页面
    10. */
    11. @RequestMapping("/searchemployees")
    12. public String getAllEmployees(Employee employee, @RequestParam(defaultValue = "1") Integer page, Model model){
    13. List<Employee> emps = employeeService.getAllEmps(employee,page,PAGE_SIZE);//分页搜索员工方法
    14. Long total = employeeService.getTotal(employee);//查询员工总条数方法
    15. model.addAttribute("emps",emps);
    16. model.addAttribute("total",total);//总条数
    17. model.addAttribute("page",page);//当前页
    18. model.addAttribute("pagenum",total%PAGE_SIZE == 0?total/PAGE_SIZE :total/PAGE_SIZE+1);//可以分为多少页
    19. return "searchemployees";
    20. }

    在EmployeeService:添加方法: 

     

    1. //分页搜索员工方法
    2. public List<Employee> getAllEmps(Employee employee, Integer page, Integer pageSize) {
    3. //这个page是从第几行数据开始查
    4. page = (page - 1)*pageSize;
    5. return employeeMapper.getAllEmps(employee,page,pageSize);
    6. }
    1. //查询员工总条数方法
    2. public Long getTotal(Employee employee) {
    3. return employeeMapper.getTotal(employee);
    4. }

    在EmployeeMapper接口:

     

    1. //搜索员工方法
    2. List getAllEmps(@Param("emp") Employee employee, @Param("page") Integer page, @Param("pageSize") Integer pageSize);
    1. //查询员工总条数方法
    2. Long getTotal(Employee employee);

    在EmployeeMapper.xml添加sql语句:

    1. <!--分页搜索员所有员工方法-->
    2. <select id="getAllEmps" resultType="com.xzb.meeting.model.Employee">
    3. select *
    4. from employee
    5. where status = #{emp.status}
    6. <if test="emp.employeeName != null">
    7. and employeename like concat('%',#{emp.employeeName},'%')
    8. </if>
    9. <if test="emp.username != null">
    10. and username like concat('%',#{emp.username},'%')
    11. </if>
    12. limit #{page},#{pageSize}
    13. </select>
    1. <!--查询员工总条数方法-->
    2. <select id="getTotal" resultType="java.lang.Long">
    3. select count(*)
    4. from employee
    5. where status = #{status}
    6. <if test="employeeName != null">
    7. and employeename like concat('%',#{employeeName},'%')
    8. </if>
    9. <if test="username != null">
    10. and username like concat('%',#{username},'%')
    11. </if>
    12. </select>

    删除页面searchemployees.ftl的固定代码:

     添加:

     

    修改form表单:添加action  name属性

    1. <form action="/admin/searchemployees" method="get">
    2. <fieldset>
    3. <legend>搜索员工</legend>
    4. <table class="formtable">
    5. <tr>
    6. <td>姓名:</td>
    7. <td>
    8. <input type="text" id="employeename" name="employeeName" value="<#if employee??>${employee.employeeName!''}" maxlength="20"/>
    9. </td>
    10. <td>账号名:</td>
    11. <td>
    12. <input type="text" id="accountname" name="username" value="<#if employee??>${employee.username!''}" maxlength="20"/>
    13. </td>
    14. <td>状态:</td>
    15. <td>
    16. <#if employee??>
    17. <#if employee.status == 0>
    18. <input type="radio" id="status" name="status" value="1"/><label>已批准</label>
    19. <input checked="checked" type="radio" id="status" name="status" value="0"/>
    20. <label>待审批</label>
    21. <input type="radio" id="status" name="status" value="2"/><label>已关闭</label>
    22. <#elseif employee.status == 1>
    23. <input checked="checked" type="radio" id="status" name="status" value="1"/>
    24. <label>已批准</label>
    25. <input type="radio" id="status" name="status" value="0"/>
    26. <label>待审批</label>
    27. <input type="radio" id="status" name="status" value="2"/><label>已关闭</label>
    28. <#elseif employee.status == 2>
    29. <input type="radio" id="status" name="status" value="1"/>
    30. <label>已批准</label>
    31. <input type="radio" id="status" name="status" value="0"/>
    32. <label>待审批</label>
    33. <input checked="checked" type="radio" id="status" name="status" value="2"/>
    34. <label>已关闭</label>
    35. </#if>
    36. <#else >
    37. <input type="radio" id="status" name="status" value="1"
    38. checked="checked"/><label>已批准</label>
    39. <input type="radio" id="status" name="status" value="0"/><label>待审批</label>
    40. <input type="radio" id="status" name="status" value="2"/><label>已关闭</label>
    41. </#if>
    42. </td>
    43. </tr>
    44. <tr>
    45. <td colspan="6" class="command">
    46. <input type="submit" class="clickbutton" value="查询"/>
    47. <input type="reset" id="myset" class="clickbutton" value="重置" onclick="clear()"/>
    48. </td>
    49. </tr>
    50. </table>
    51. </fieldset>
    52. </form>

    1. <h3 style="text-align:center;color:black">查询结果</h3>
    2. <div class="pager-header">
    3. <div class="header-info">
    4. <span class="info-number">${total}</span>条结果,
    5. 分成<span class="info-number">${pagenum}</span>页显示,
    6. 当前第<span class="info-number">${page}</span>
    7. </div>
    8. <div class="header-nav">
    9. <a type="button" class="clickbutton" href="/admin/searchemployees?status=${employee.status}&page=1">首页</a>
    10. <a type="button" class="clickbutton"
    11. href="/admin/searchemployees?status=${employee.status}&page=${page-1}">上页</a>
    12. <a type="button" class="clickbutton"
    13. href="/admin/searchemployees?status=${employee.status}&page=${page+1}">下页</a>
    14. <a type="button" class="clickbutton"
    15. href="/admin/searchemployees?status=${employee.status}&page=${pagenum}">末页</a>
    16. <form action="/admin/searchemployees"
    17. style="display: inline"
    18. method="get">
    19. <input type="hidden" name="status" value="${employee.status}">
    20. 跳到第<input name="page" type="text" id="pagenum" class="nav-number"/>
    21. <input type="submit" class="clickbutton" value="跳转"/>
    22. </form>
    23. </div>
    24. </div>

     

     

     在EmployeeController:

    1. /**
    2. * 关闭账号 修改状态为2
    3. *
    4. * @param id 员工编号
    5. * @return 重定向到审批通过的员工页面
    6. */
    7. @RequestMapping("/updateemp")
    8. public String updateemp(Integer id){
    9. employeeService.updateStatus(id,2);
    10. return "redirect:/admin/searchemployees?status=1";
    11. }

    EmployeeService:

    1. //更新用户状态(status)
    2. public Integer updateStatus(Integer employeeid, Integer status) {
    3. return employeeMapper.updateStatus(employeeid,status);
    4. }

    在EmoloyeeMapper:

    1. //更新用户状态(status)
    2. Integer updateStatus(@Param("employeeid") Integer employeeid,@Param("status") Integer status);

    EmoloyeeMapper.xml:sql语句

    1. <!--更新用户状态(status)-->
    2. <update id="updateStatus">
    3. update employee
    4. set status = #{status}
    5. where employeeid = #{employeeid}
    6. </update>

     (2)查看会议室

    创建MeetingRoomController:

    创建Meetingroom实体类:

     

    创建MeetingMapper接口、MeetingMapper.xml

     

     

     创建MeetingRoomService:

     在MeetingRoomController加方法:

    1. //查询会议室,并进行会议室页面的跳转
    2. @RequestMapping("/meetingrooms")
    3. public String meetingrooms(Model model){
    4. model.addAttribute("mrs",meetingRoomService.getAllMr());//调用查询所有会议室名称的方法
    5. return "meetingrooms";
    6. }

     在MeetingRoomService添加这个方法:

    1. //查询所有会议室
    2. public List getAllMr() {
    3. return meetingRoomMapper.getAllMr();
    4. }

     在MeetingRoomMapper添加方法:

    1. //查询所有会议室
    2. public List getAllMr();

     在MeetingRoomMapper.xml添加sql语句:

    1. <!--查询所有会议室-->
    2. <select id="getAllMr" resultType="com.xzb.meeting.model.MeetingRoom">
    3. select *
    4. from meetingroom
    5. </select>

    删除meetingroom页面的固定数据:从数据库中获取数据

     

     

    (3)会议室详情

    修改a标签的连接:

    在MeetingRoomController:添加方法:

     

    1. //会议室详情页面
    2. @RequestMapping("/roomdetails")
    3. public String roomdetails(Integer roomid,Model model){
    4. model.addAttribute("mr",meetingRoomService.getMrById(roomid));
    5. return "roomdetails";
    6. }

     

    在MeetingRoomService添加方法:

     

     

    1. //根据roomid获取对应的会议室
    2. public MeetingRoom getMrById(Integer roomid) {
    3. return meetingRoomMapper.getMrById(roomid);
    4. }

     在MeetingRoomMapper添加方法:

    1. //根据roomid获取对应的会议室
    2. MeetingRoom getMrById(Integer roomid);

     MeetingRoomMapper.xml添加对应的sql语句:

     

    1. <!--根据roomid获取对应的会议室-->
    2. <select id="getMrById" resultType="com.xzb.meeting.model.MeetingRoom">
    3. select *
    4. from meetingroom
    5. where roomid = #{roomid}
    6. </select>

    修改meetingdetail会议室详情页面:

    1. <form action="/updateroom" method="post">
    2. <fieldset>
    3. <legend>会议室信息</legend>
    4. <table class="formtable">
    5. <tr>
    6. <td>门牌号:</td>
    7. <td>
    8. <input id="roomnumber" name="roomnum" type="text" value="${mr.roomnum}" maxlength="10"/>
    9. </td>
    10. </tr>
    11. <tr>
    12. <td>会议室名称:</td>
    13. <td>
    14. <input id="capacity" name="roomname" type="text" value="${mr.roomname}" maxlength="20"/>
    15. </td>
    16. </tr>
    17. <tr>
    18. <td>最多容纳人数:</td>
    19. <td>
    20. <input id="roomcapacity" name="capacity" type="text" value="${mr.capacity}"/>
    21. </td>
    22. </tr>
    23. <tr>
    24. <td>当前状态:</td>
    25. <td>
    26. <#if mr.status==0>
    27. <input type="radio" id="status" name="status" checked="checked" value="0"/><label
    28. for="status">启用</label>
    29. <input type="radio" id="status" value="1" name="status"/><label for="status">已占用</label>
    30. <#else >
    31. <input type="radio" id="status" name="status" value="0"/><label for="status">启用</label>
    32. <input type="radio" id="status" name="status" value="1" checked="checked"/><label for="status"
    33. >已占用</label>
    34. </#if>
    35. </td>
    36. </tr>
    37. <tr>
    38. <td>备注:</td>
    39. <td>
    40. <textarea id="description" name="description" maxlength="200" rows="5"
    41. cols="60">${mr.description}</textarea>
    42. </td>
    43. </tr>
    44. <tr>
    45. <td colspan="2" class="command">
    46. <input type="hidden" value="${mr.roomid}" name="roomid">
    47. <input type="submit" value="确认修改" class="clickbutton"/>
    48. <input type="button" class="clickbutton" value="返回" onclick="window.history.back();"/>
    49. </td>
    50. </tr>
    51. </table>
    52. </fieldset>
    53. </form>

     

     

    点击:

     

    修改会议室:

    在MeetingRoomController:添加修改请求:

     

    1. /**
    2. * 更新会议房间信息
    3. *
    4. * @param meetingRoom MeetingRoom
    5. * @return Integer
    6. */
    7. @RequestMapping("/updateroom")
    8. public String updateroom(MeetingRoom meetingRoom){
    9. Integer result = meetingRoomService.updateroom(meetingRoom);
    10. if (result == 1){
    11. return "redirect:/meetingrooms";//更新成功跳转会议室页面
    12. }else {
    13. return "forward:/roomdetails?roomid="+meetingRoom.getRoomid();//失败还返回这个页面详情更改页面
    14. }
    15. }

     在MeetingRoomService添加方法:

    1. //更新会议房间信息
    2. public Integer updateroom(MeetingRoom meetingRoom) {
    3. return meetingRoomMapper.updateroom(meetingRoom);
    4. }

      在MeetingRoomMapper添加修改方法:

    1. //更新会议房间信息
    2. Integer updateroom(MeetingRoom meetingRoom);

     MeetingRoomMapper.xml:添加sql语句

     

    1. <!--更新会议房间信息-->
    2. <update id="updateroom">
    3. update meetingroom
    4. set roomnum = #{roomnum},roomname = #{roomname},capacity = #{capacity},status = #{status},description = #{description}
    5. where roomid = #{roomid}
    6. </update>

    给详情页面的表单添加form action

    添加name属性:

     

    添加roomid:

     

     

     

     

     (4)添加会议室

     

     在MeetingRoomController中添加:跳转提加页面请求:

     

    1. //跳转到添加添加会议室页面
    2. @RequestMapping("/admin/addmeetingroom")
    3. public String addmeetingroom(){
    4. return "addmeetingroom";
    5. }

    添加请求: 

     

    1. //添加会议室请求
    2. @RequestMapping("/admin/doAddMr")
    3. public String doAddMr(MeetingRoom meetingRoom){
    4. meetingRoomService.doAddMr(meetingRoom);
    5. return "redirect:/meetingrooms";//添加成功跳转会议室页面
    6. }

     在MeetingRoomServoce添加这个方法:

    1. //添加会议室请求
    2. public Integer doAddMr(MeetingRoom meetingRoom) {
    3. return meetingRoomMapper.doAddMr(meetingRoom);
    4. }

     在MeetingRoomMapper添加:

    1. //添加会议室请求
    2. Integer doAddMr(MeetingRoom meetingRoom);

     MeetingRoomMapper.xml添加sql语句:

     

    1. <insert id="doAddMr">
    2. insert into meetingroom (roomnum,roomname,capacity,status,description)
    3. values (#{roomnum},#{roomname},#{capacity},#{status},#{description})
    4. insert>

    给添加会议页面:修改form表单:name属性

     

     

    1. <form action="/admin/doAddMr" method="post">
    2. <fieldset>
    3. <legend>会议室信息</legend>
    4. <table class="formtable">
    5. <tr>
    6. <td>门牌号:</td>
    7. <td>
    8. <input name="roomnum" id="roomnumber" type="text" placeholder="例如:201" maxlength="10"/>
    9. </td>
    10. </tr>
    11. <tr>
    12. <td>会议室名称:</td>
    13. <td>
    14. <input name="roomname" id="capacity" type="text" placeholder="例如:第一会议室" maxlength="20"/>
    15. </td>
    16. </tr>
    17. <tr>
    18. <td>最多容纳人数:</td>
    19. <td>
    20. <input name="capacity" id="roomcapacity" type="text" placeholder="填写一个正整数"/>
    21. </td>
    22. </tr>
    23. <tr>
    24. <td>当前状态:</td>
    25. <td>
    26. <input type="radio" id="status" name="status" checked="checked" value="0"/><label for="status">启用</label>
    27. <input type="radio" id="status" name="status" value="1"/><label for="status" >已占用</label>
    28. </td>
    29. </tr>
    30. <tr>
    31. <td>备注:</td>
    32. <td>
    33. <textarea name="description" id="description" maxlength="200" rows="5" cols="60" placeholder="200字以内的文字描述"></textarea>
    34. </td>
    35. </tr>
    36. <tr>
    37. <td colspan="2" class="command">
    38. <input type="submit" value="添加" class="clickbutton"/>
    39. <input type="reset" value="重置" class="clickbutton"/>
    40. </td>
    41. </tr>
    42. </table>
    43. </fieldset>
    44. </form>

     

     

  • 相关阅读:
    Java 面试 - Redis
    雅思口语高分课程
    书生·浦语大模型实战营第二期作业六
    企业微信开发教程一:添加企微应用流程图解以及常见问题图文说明
    2023NOIP A层联测25-游戏
    一千题,No.0077(计算谱半径)
    记一次接口分析
    1分钟-从例题加深对C语言中指针的了解
    使用jvm工具排查系统问题
    一文读懂微前端
  • 原文地址:https://blog.csdn.net/dengfengling999/article/details/128008425