您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
13-Spring练习-用户列表展示1
发布时间:2025-01-08 19:13:52编辑:雪饮阅读()
-
续上篇,接下来要实现用户列表,那么首先用户列表的数据需要有,建表插数据sql如:
CREATE TABLE `sys_user` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`username` varchar(50) DEFAULT NULL,
`email` varchar(50) DEFAULT NULL,
`password` varchar(80) DEFAULT NULL,
`phoneNum` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8;
/*Data for the table `sys_user` */
insert into `sys_user`(`id`,`username`,`email`,`password`,`phoneNum`) values (1,'zhangsan','zhangsan@itcast.cn','123','13888888888'),(2,'lisi','lisi@itcast.cn','123','13999999999'),(3,'wangwu','wangwu@itcast.cn','123','18599999999');
那么接下来我们之前的user类还需要新增一个所属角色,因为用户可能所属多个角色,所以应该是list,以及对应的setter和getter
//当前用户共有哪些角色
private List<Role> roles;
public List<Role> getRoles() {
return roles;
}
public void setRoles(List<Role> roles) {
this.roles = roles;
}
然后找到pages/aside.jsp里面用户管理的href应该修改如
<li><a
href="${pageContext.request.contextPath}/user/list"> <i
class="fa fa-circle-o"></i> 用户管理
</a></li>
那么对应完成用户管理对应的控制器以及里面应该有userService,用userService去查询用户列表。
package sp21.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;
import sp21.domain.User;
import sp21.service.UserService;
import java.util.List;
@Controller
@RequestMapping("/user")
public class UserController {
@Autowired
private UserService userService;
@RequestMapping("/list")
public ModelAndView list(){
List<User> userList=userService.list();
ModelAndView modelAndView=new ModelAndView();
modelAndView.addObject("userList",userList);
modelAndView.setViewName("user-list");
return modelAndView;
}
}
那么这里userService只是我们假定的,所以我们对应需要定义出来
package sp21.service;
import sp21.domain.User;
import java.util.List;
public interface UserService {
List<User> list();
}
那么我们再来假定该userService的实现
package sp21.service.impl;
import sp21.dao.UserDao;
import sp21.domain.User;
import sp21.service.UserService;
import java.util.List;
public class UserServiceImpl implements UserService {
private UserDao userDao;
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public List<User> list() {
return userDao.findAll();
}
}
当然这个实现里面userDao也还没有声明,我们需要创建userDao的接口
package sp21.dao;
import sp21.domain.User;
import java.util.List;
public interface UserDao {
List<User> findAll();
}
那么接下来就是userDao接口的实现
package sp21.dao.impl;
import org.springframework.jdbc.core.BeanPropertyRowMapper;
import org.springframework.jdbc.core.JdbcTemplate;
import sp21.dao.UserDao;
import sp21.domain.User;
import java.util.List;
public class UserDaoImpl implements UserDao {
private JdbcTemplate jdbcTemplate;
public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {
this.jdbcTemplate = jdbcTemplate;
}
public List<User> findAll() {
List<User> userList = jdbcTemplate.query("select * from sys_user", new BeanPropertyRowMapper<User>(User.class));
return userList;
}
}
那么最后我们将userService配置于Spring Config配置文件xml中
<!--配置userDao-->
<bean id="userDao" class="sp21.dao.impl.UserDaoImpl">
<property name="jdbcTemplate" ref="jdbcTemplate"/>
</bean>
<!--配置userService-->
<bean id="userService" class="sp21.service.impl.UserServiceImpl">
<property name="userDao" ref="userDao"/>
</bean>
这样以来userController里面的userService就实现了。
那么接下来需要在pages/user-list.jsp中添加
taglib
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
以及数据列表渲染替换之前的静态数据列表
<c:forEach items="${userList}" var="user">
<tr>
<td><input name="ids" type="checkbox"></td>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.email}</td>
<td>${user.phoneNum}</td>
<td class="text-center">
课程研究员 讲师
</td>
<td class="text-center">
<a href="javascript:void(0);" class="btn bg-olive btn-xs">删除</a>
</td>
</tr>
</c:forEach>
接下来重新部署即可,我重新部署好几次才ok,有时候可能是缓存之类搞鬼。
当然这里用户的子属性角色列表暂时还没有完成。
关键字词:Spring,用户列表