【已解决】JavaScript---items="${arraylist}" var="student"无法获取到值,null错误
第一、
bean层
只写数据结构
1、定义成员变量,私有的属性
2、重写tostring方法
3、写带全部参数的构造方法
4、写无参构造方法
5、写get、set方法
#注意# 变量名和方法名的拼写错误,检查再三!!!
第二、JDBCUtil工具类
静态定义 Connection
url
user
password
1 package com.ycw.util;
2
3 import java.sql.DriverManager;
4 import java.sql.PreparedStatement;
5 import java.sql.ResultSet;
6 import java.sql.SQLException;
7 import com.mysql.jdbc.Connection;
8
9 public class JDBCUtil {
10 private static Connection conn;
11 private static String url="jdbc:mysql://localhost:3306/info?useUnicode=true&CharacterEncoding=utf-8";
12 private static String user="root";
13 private static String password="000429";
14 static {
15 try {
16 Class.forName("com.mysql.jdbc.Driver");
17 } catch (ClassNotFoundException e) {
18 // TODO 自动生成的 catch 块
19 e.printStackTrace();
20 }
21 }
22 public static Connection getConn() {
23 //获得连接
24 try {
25 conn = (Connection) DriverManager.getConnection(url,user,password);
26 if(conn!=null)
27 System.out.println("数据库连接成功!");
28 } catch (SQLException e) {
29 // TODO 自动生成的 catch 块
30 e.printStackTrace();
31 }
32 return conn;
33 }
34 public static void drop(Connection conn,PreparedStatement ps)
35 {
36 if(ps!=null) {
37 try {
38 ps.close();
39 System.out.println("ps关闭!");
40 } catch (SQLException e) {
41 // TODO 自动生成的 catch 块
42 e.printStackTrace();
43 }
44 }
45 if(conn!=null) {
46 try {
47 conn.close();
48 System.out.println("conn关闭!");
49 } catch (SQLException e) {
50 // TODO 自动生成的 catch 块
51 e.printStackTrace();
52 }
53 }
54 }
55 public static void drop(Connection conn , PreparedStatement ps , ResultSet rs) {
56 if(rs!=null) {
57 try {
58 rs.close();
59 System.out.println("rs关闭!");
60 } catch (SQLException e) {
61 // TODO 自动生成的 catch 块
62 e.printStackTrace();
63 }
64 }
65 if(ps!=null) {
66 try {
67 ps.close();
68 System.out.println("ps关闭!");
69 } catch (SQLException e) {
70 // TODO 自动生成的 catch 块
71 e.printStackTrace();
72 }
73 }
74 if(conn!=null) {
75 try {
76 conn.close();
77 System.out.println("conn关闭!");
78 } catch (SQLException e) {
79 // TODO 自动生成的 catch 块
80 e.printStackTrace();
81 }
82 }
83 }
84 }
第三、dao层
1、类体静态定义
注意导包问题:
导包都是 java.sql.ResultSet
java.sql.PreparedStatement
1 1 private static Connection conn;
2 2 private static PreparedStatement ps;
3 3 private static ResultSet rs;
4 4 private static StudentEnity student;
第四、servlet层
1、设置字符集
1 request.setCharacterEncoding("UTF-8");
2 response.setCharacterEncoding("UTF-8");
3 response.setContentType("application/json;charset=utf-8");
第五、页面层
#注意#
doget 处理href请求
href="${pageContext.request.contextPath}/servlet名"
e.g.
<a href="${pageContext.request.contextPath}/MainServlet">显示全部信息</a>
JSTL的使用:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
1 <c:forEach items="${arraylist}" var="student">
2 <tr>
3 <td align="center">${student.studentname}</td>
4 <td align="center">${student.studentid}</td>
5 <td align="center">${student.studentclass }</td>
6 <td align="center">${student.studentscore }</td>
7 <td align="center">${student.studentdate }</td>
8 </tr>
9 </c:forEach>
#注意#
items 属性 = “${}” 在{} 里面的值和括号之间不能有空格,否则识别失败!
${类名.属性名}
这里实质上是调用了类的get方法,不是直接获取,是间接获取,所以成员变量依然定义成private,但是方法必须是公有的!
好看请赞,养成习惯:) 本文来自博客园,作者:靠谱杨, 转载请注明原文链接:https://www.cnblogs.com/rainbow-1/p/14103331.html
欢迎来我的51CTO博客主页踩一踩 我的51CTO博客
文章中的公众号名称可能有误,请统一搜索:靠谱杨的秘密基地
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具