ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

第十九节——spring练习之页面上用户的添加

2021-10-12 09:04:36  阅读:128  来源: 互联网

标签:spring Long 第十九 add user save public 页面


一、添加步骤分析

  1. 点击列表页面新建按钮跳转到角色添加页面,由于页面上需要展示角色列表,所以不能直接跳转到页面,应该先跳转到controller层查询角色后再跳转到页面展示
  2. 输入角色信息,点击保存按钮,表单数据提交服务器
  3. 编写RoleController的save()方法
  4. 编写RoleService的save()方法
  5. 编写RoleDao的save()方法
  6. 使用JdbcTemplate保存Role数据到sys_role
  7. 跳转回角色列表页面

二、具体设计

  1. 修改user-list页面下的新建按钮超链接,使其跳转到controller层的user/add方法函数
    在这里插入图片描述
  2. 在UserController.class里添加add方法函数
public class UserController {
    @Autowired
    private RoleService roleService;

    @RequestMapping("/add")
    public ModelAndView add(){
        ModelAndView modelAndView = new ModelAndView();
        List<Role> roleList = roleService.list();
        modelAndView.addObject("roleList",roleList);
        modelAndView.setViewName("user-add");
    }
}
  1. 修改user-add页面,动态展示页面上的角色信息
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>

<c:forEach items="${roleList}" var="role">
	<input class="" type="checkbox" name="roleIds" value="${role.id}">${role.roleName}
</c:forEach>

在这里插入图片描述
在这里插入图片描述

  1. 修改user-add页面中保存按钮的超链接,使其跳转到controller层的save方法函数,并检查页面提交的name参数,使其名字和domain下User.class里的属性名一致,(角色属性另外处理)
    在这里插入图片描述
    在这里插入图片描述
  2. 在UserController.class里添加save方法
@RequestMapping("/save")
    public String save(User user,Long[] roleIds){
        userService.save(user,roleIds);
        return "redirect:/user/list";
    }
  1. 在UserService以及UserServiceImpl添加相应的save方法
public interface UserService {
    List<User> list();

    void save(User user, Long[] roleIds);
}

@Override
public void save(User user, Long[] roleIds) {
    //第一步 向sys_user表中存储数据
    Long userId = userDao.save(user);
    //第二步 向sys_user_role 关系表中存储多条数据
    userDao.saveUserRoleRel(userId,roleIds);
}
  1. 在UserDao以及UserDaoImpl添加相应的save以及saveUserRoleRel函数
@Override
public Long save(final User user) {
    //创建PreparedStatementCreator
    PreparedStatementCreator creator = new PreparedStatementCreator() {
        public PreparedStatement createPreparedStatement(Connection connection) throws SQLException {
            //使用原始jdbc完成有个PreparedStatement的组建
            PreparedStatement preparedStatement = connection.prepareStatement("insert into sys_user values(?,?,?,?,?)", PreparedStatement.RETURN_GENERATED_KEYS);
            preparedStatement.setObject(1, null);
            preparedStatement.setString(2, user.getUsername());
            preparedStatement.setString(3, user.getEmail());
            preparedStatement.setString(4, user.getPassword());
            preparedStatement.setString(5, user.getPhoneNum());
            return preparedStatement;
        }
    };
    //创建keyHolder
    GeneratedKeyHolder keyHolder = new GeneratedKeyHolder();
    jdbcTemplate.update(creator, keyHolder);
    //获得生成的主键
    long userId = keyHolder.getKey().longValue();
    return userId; //返回当前保存用户的id 该id是数据库自动生成的
}

@Override
public void saveUserRoleRel(Long userId, Long[] roleIds) {
    for (Long roleId : roleIds) {
        jdbcTemplate.update("insert into sys_user_role values(?,?)",userId,roleId);
    }
}
  1. 开启tomcat,验证数据

标签:spring,Long,第十九,add,user,save,public,页面
来源: https://blog.csdn.net/qq_37589805/article/details/120715813

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有