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 星