userList在index里面无法被识别,并且userList里面没有数据?
核对了一下发现代码应该没有错误,请老师帮忙看一下userList为啥不能识别和输出?
index.jsp
<%--
Created by IntelliJ IDEA.
User: 46215
Date: 2019/8/9
Time: 18:18
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<html>
<head>
<title>慕课网用户管理中心</title>
<link rel="stylesheet" href="lib/bootstrap-3.3.7-dist/css/bootstrap.min.css">
<script src="lib/2.2.4/jquery-1.12.4.min.js"></script>
<script src="lib/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
</head>
<body>
<div class="container">
<div class="row">
<div class="page-header">
<h1>慕课网后台管理系统<small>用户数据管理中心</small></h1>
</div>
</div>
<div class="row">
<div class="jumbotron">
<h1>MyBatis基础入门课程!</h1>
<p>通过一个项目来完成基础部分的学习</p>
<p><a class="btn btn-primary brn-lg" href="#" role="button">查看更多,请上慕课网</a></p>
</div>
</div>
<div class="row">
<table class="table table-hover table-striped">
<tr>
<th>用户编号</th>
<th>登录账号</th>
<th>用户昵称</th>
<th>邮箱</th>
<th>联系方式</th>
<th>账号创建时间</th>
<th>用户状态</th>
<th>操作</th>
</tr>
<c:forEach var="user" items="${usersList}">
<tr>
<td>${user.id}</td>
<td>${user.username}</td>
<td>${user.nickname}</td>
<td>${user.email}</td>
<td>${user.phone}</td>
<td>${user.createTime}</td>
<c:if test="${user.userStates==0}">
<td>正常</td>
</c:if>
<c:if test="${user.userStates==1}">
<td>锁定</td>
</c:if>
<c:if test="${user.userStates==2}">
<td>删除</td>
</c:if>
<td>
<a href="${pageContext.request.contextPath}/detail?id=${user.id}">查看</a>
<a href="">修改</a>
<a href="">删除</a>
</td>
</tr>
</c:forEach>
</table>
</div>
</div>
</body>
</html>
</html>UsersFindServlet
package com.damu.servlet;
import com.damu.dao.UsersDAO;
import com.damu.entity.Users;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
/**
* 为了方便前台调用UsersDAO得到的数据
*/
@WebServlet("/index")
public class UsersFindServlet extends HttpServlet {
private UsersDAO usersDAO=new UsersDAO();
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
//将findAll()查询到的数据存入List
List<Users> list=usersDAO.findAll();
System.out.println(list);
//将list存入request
req.setAttribute("usersList",list);
//然后请求转发到页面进行数据的演示
req.getRequestDispatcher("index.jsp").forward(req, resp);
}
}UsersDAO
package com.damu.dao;
import com.damu.entity.Users;
import com.damu.utils.SqlSessionFactoryUtils;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import java.util.List;
/**
* 查询数据
*/
public class UsersDAO {
private SqlSession sqlSession;
private List<Users> list;
private Users user;
private SqlSession getSession(){
sqlSession= SqlSessionFactoryUtils.getSqlSessionFactory().openSession();
return sqlSession;
}
//查询全部用户
public List<Users> findAll(){
try {
list=getSession().selectList("findAll");
// for(int i=0;i<list.size();i++){
// System.out.println(i);
// }
} catch (Exception e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
return list;
}
//查询当用户根据编号查询
public Users findById(Integer id){
try {
user=getSession().selectOne("findById",id);
} catch (Exception e) {
e.printStackTrace();
}finally {
sqlSession.close();
}
return user;
}
}SqlSessionFactoryUtils
package com.damu.utils;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import java.io.IOException;
import java.io.InputStream;
/**
* 初始化,获取和关闭SqlSessionFactory
*/
public class SqlSessionFactoryUtils {
//路径
private static String RESOURCE="mybatis-config.xml";
//SqlSessionFactory对象
private static SqlSessionFactory sqlSessionFactory;
//因创建的是web项目,所以存放在ThreadLocal里
private static ThreadLocal<SqlSession> threadLocal=new ThreadLocal<SqlSession>();
//创建一个初始化SqlSessionFactory的方法
public static void initSqlSessionFactory(){
try {
InputStream is = Resources.getResourceAsStream(RESOURCE);
sqlSessionFactory =new SqlSessionFactoryBuilder().build(is);
} catch (IOException e) {
e.printStackTrace();
}
}
//获取SqlSessionFactory即工厂对象的方法
public static SqlSessionFactory getSqlSessionFactory(){
return sqlSessionFactory;
}
//关闭SqlSession的方法,关闭时先从threadLocal里面获取
public static void close(){
SqlSession session=threadLocal.get();
if(session!=null){
session.close();
threadLocal.set(null);
}
}
}usersMapper.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--
mapper 用于定义一个映射配置文件的根节点
namespace属性是用来配置命名空间,主要进行session级别的缓存管理
命名空间默认情况下,使用我们当前操作的实体类的全路径
-->
<mapper namespace="com.damu.entity.Users">
<select id="findAll" resultType="com.damu.entity.Users">
select *from users
</select>
<select id="findById" resultType="com.damu.entity.Users">
select *from users where id=#{id}
</select>
</mapper>mybatis-config.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!--
properties配置,用于加载外部的properties配置文件
-->
<properties resource="db.properties"></properties>
<!--
environments 主要用于进行数据源的配置
可以配置多个数据源
-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="product">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
<environment id="test">
<transactionManager type="JDBC"/>
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${username}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="mapper/usersMapper.xml"/>
</mappers>
</configuration>db.properties
driver=com.mysql.jdbc.Driver url=jdbc:mysql://localhost:3306/mydb username=root password=1234
1
收起
正在回答
3回答
同学idea的控制台是否有报错呢?
Java数据库开发与实战应用2018版
- 参与学习 人
- 提交作业 277 份
- 解答问题 4297 个
Java数据库开发的必备技能,从流行的MySQL数据库开始,到Java原生的数据库管理接口JDBC的使用,再到常用的数据持久化框架MyBatis,让你向Java工程师的目标又迈进了一步!
了解课程







恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星