欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

7.24第五次实训笔记

程序员文章站 2022-05-25 21:14:58
...

实训感受

1、今天实现了注销、添加角色的功能。注销比较容易实现,主要就是一个页面的跳转和remove信息就可以了。但是添加角色有一些困难,课后运行测试的时候感觉有些地方还是不够严谨,还可以再改进一下。
2、今天完成了小组分配的任务,登录、注册和订单管理部分,基本上都是老师在课堂上讲过的,稍微改改就可以了,但我在实现显示信息的时候耽误了很长时间,一是我没有改根路由,导致无法跳转到findAll页面,二是数据库的列名是用下划线命名的,而java支持的是驼峰命名法,因此这些数据无法在页面上显示,将列名用驼峰命名就改好了这个问题。
总的来说,今天收获很多,尤其是做完小组项目,对课堂学的内容又有了更深入的理解和掌握,使用gitee上传代码,也让我对gitee更加熟悉。

实训流程

1、依次实现注销和添加角色的功能
2、完成小组项目

课堂任务编码实现

bean层添加
UserRole

package com.zr.bean;

public class UserRole {
    private int userId;
    private int roleId;

    public int getUserId() {
        return userId;
    }

    public void setUserId(int userId) {
        this.userId = userId;
    }

    public int getRoleId() {
        return roleId;
    }

    public void setRoleId(int roleId) {
        this.roleId = roleId;
    }

    @Override
    public String toString() {
        return "UserRole{" +
                "userId=" + userId +
                ", roleId=" + roleId +
                '}';
    }

    public UserRole(int userId, int roleId) {
        this.userId = userId;
        this.roleId = roleId;
    }

    public UserRole() {
    }
}

controller

package com.zr.controller;

import com.zr.bean.PageInfo;
import com.zr.bean.Role;
import com.zr.bean.User;
import com.zr.dao.IUserDao;
import com.zr.service.IRoleService;
import com.zr.service.IUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.List;

@Controller
@RequestMapping("user")
public class UserController {

    @Autowired
    private IUserService userService;
    @Autowired
    private IRoleService roleService;

    @RequestMapping("login.do")
    public ModelAndView login(User user,HttpSession session){
        int id = userService.login(user.getUsername(),user.getPassword());
        ModelAndView modelAndView=new ModelAndView();
        if(id != -1){
            List<Integer> roleIds=roleService.findRoleByUserId(id);
            session.setAttribute("user",user);
            session.setAttribute("roleIds",roleIds);
            modelAndView.setViewName("main");
        }
        else {
            modelAndView.setViewName("../failer");
        }
        return modelAndView;
    }

    @RequestMapping("findAll.do")
    public ModelAndView findAll(@RequestParam(defaultValue = "1") int currentPage, String username,
                                @RequestParam(defaultValue = "0") int type,
                                HttpSession session){
        if(type==1){
            session.setAttribute("searchname",username);
        }else if(type==0){
            username=(String) session.getAttribute("searchname");
        }else if(type==2){
            session.removeAttribute("searchname");
        }

        PageInfo<User> pageInfo = userService.findAll(currentPage,username);
        ModelAndView mv=new ModelAndView();
        mv.setViewName("user-list");
        mv.addObject("pageInfo",pageInfo);
        return mv;
    }

    @RequestMapping("deleteById.do")
    public String delete(int id){
        userService.deleteById(id);
        return "redirect:findAll.do";  //重定向
    }

    @RequestMapping("add.do")
    public String add(User user){
        userService.add(user);
        return "redirect:findAll.do";
    }

    @RequestMapping("toUpdate.do")
    public ModelAndView toUpdate(int id){
        User user=userService.selectUserById(id);
        ModelAndView modelAndView=new ModelAndView();
        modelAndView.addObject("user",user);
        modelAndView.setViewName("user-update");
        return modelAndView;
    }

    @RequestMapping("update.do")
    public String update(User user){
        userService.update(user);
        return "redirect:findAll.do";
    }
    @RequestMapping("logout.do")
    public String logout(HttpSession session){
        session.removeAttribute("user");
        return "../login";
    }

    //传值方法:使用ModelAndView
    //当url处于这个时,由listCategory方法来处理请求
    @RequestMapping("toAddRole.do")
    public ModelAndView toAddRole(int id){
        //创建一个模型视图对象
        ModelAndView modelAndView = new ModelAndView();
        //获取到查询的数据
        List<Role> roleList = roleService.findNotRoleByUserId(id);
        //将数据放置到ModelAndView对象view中,第二个参数可以是任何java类型
        modelAndView.addObject("roles",roleList);
        //放入jsp路径
        modelAndView.setViewName("user-role-add");
        modelAndView.addObject("id",id);
        //返回ModelAndView对象
        return modelAndView;
    }

    @RequestMapping("addRole.do")
    public String addRole(String roleIds,String userId){
        String[] strs = roleIds.split(",");
        List<Integer> ids = new ArrayList<>();
        for(String s:strs){
            ids.add(Integer.parseInt(s));
        }

        roleService.addRole(ids,Integer.parseInt(userId));
        return "redirect:findAll.do";
    }

}

dao层新增
IUserDao

package com.zr.dao;

import com.zr.bean.Role;

import java.util.List;

public interface IRoleDao {

    List<Integer> findRoleIdsByUserId(int id);

    List<Role> findNotRoleByUserId(int id);
}

service层新增
RoleServiceImpl

package com.zr.service.impl;

import com.zr.bean.Role;
import com.zr.bean.UserRole;
import com.zr.dao.IRoleDao;
import com.zr.service.IRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class RoleServiceImpl implements IRoleService {

    @Autowired
    private IRoleDao roleDao;

    @Override
    public List<Integer> findRoleByUserId(int id) {
        return roleDao.findRoleIdsByUserId(id);
    }

    @Override
    public List<Role> findNotRoleByUserId(int id) {
        return roleDao.findNotRoleByUserId(id);
    }

    @Override
    public void addRole(List<Integer> ids, int userId) {
        for(int i:ids){
            UserRole userRole=new UserRole();
            userRole.setRoleId(i);
            userRole.setUserId(userId);
        }
    }
}

IRoleService

package com.zr.service;

import com.zr.bean.Role;

import java.util.List;

public interface IRoleService {

    List<Integer> findRoleByUserId(int id);

    List<Role> findNotRoleByUserId(int id);

    void addRole(List<Integer> ids, int userId);
}

成果展示

hualili用户,既是admin也是user,点击添加角色后,显示如下:
7.24第五次实训笔记
可见无法添加角色。
登录ikun用户,他既不是admin,也不是user,
7.24第五次实训笔记
可以添加角色。
注销功能在右上角,点击后跳转登录页面,不再展示。

小组项目进程

每个功能都在完善中,预计明天可以将整个项目进行整合、测试并交付。

相关标签: 实训笔记 java