第十九节——spring练习之页面上用户的添加
Posted 想学习安全的小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第十九节——spring练习之页面上用户的添加相关的知识,希望对你有一定的参考价值。
一、添加步骤分析
- 点击列表页面新建按钮跳转到角色添加页面,由于页面上需要展示角色列表,所以不能直接跳转到页面,应该先跳转到controller层查询角色后再跳转到页面展示
- 输入角色信息,点击保存按钮,表单数据提交服务器
- 编写RoleController的save()方法
- 编写RoleService的save()方法
- 编写RoleDao的save()方法
- 使用JdbcTemplate保存Role数据到sys_role
- 跳转回角色列表页面
二、具体设计
- 修改user-list页面下的新建按钮超链接,使其跳转到controller层的user/add方法函数
- 在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");
}
}
- 修改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>
- 修改user-add页面中保存按钮的超链接,使其跳转到controller层的save方法函数,并检查页面提交的name参数,使其名字和domain下User.class里的属性名一致,(角色属性另外处理)
- 在UserController.class里添加save方法
@RequestMapping("/save")
public String save(User user,Long[] roleIds){
userService.save(user,roleIds);
return "redirect:/user/list";
}
- 在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);
}
- 在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);
}
}
- 开启tomcat,验证数据
以上是关于第十九节——spring练习之页面上用户的添加的主要内容,如果未能解决你的问题,请参考以下文章