我想通过请求将我自己的对象数组发送到JSP页面.
在servlet中的这部分代码中,我将获取我的数据,将其放在对象数组上,并将它们设置为请求.
if (request.getParameter("todo").equals("show_article_list")) {
try {
Article[] articles = this.getArticleList();
request.setAttribute("articles", articles);
RequestDispatcher dispatcher = getServletContext().getRequestDispatcher("article/article_list.jsp");
dispatcher.forward(request, response);
} catch (Exception e) {
}
}
public Article[] getArticleList() throws Exception {
db data = new db();
Connection con = data.OpenConnection();
PreparedStatement statement = con.prepareStatement("SELECT * FROM `article`");
ResultSet result = statement.executeQuery();
int size = 0;
if (result != null)
{
if (result.last()) {
size = result.getRow();
result.beforeFirst();
}
}
Article[] articles = new Article[size];
int i = 0;
while(result.next()){
articles[i] = new Article (
result.getInt(1),
result.getString(2),
result.getString(3),
result.getString(4));
i++;
}
return articles;
}
Run Code Online (Sandbox Code Playgroud)
这是我的班级:
public class Article {
public Integer getId(){return id;}
public String getTitle(){return title;}
public void setTitle(String title){this.title = title;}
public String getText(){return text;}
public void set(String text){this.text = text;}
public String getDescription(){return description;}
public void setDescription(String description){this.description= description;}
private Integer id;
private String title;
private String text;
private String description;
public Article(Integer Id, String Title, String Text, String Description)
{
id = Id;
title = Title;
text = Text;
description = Description;
}
}
Run Code Online (Sandbox Code Playgroud)
在我的JSP页面上,我想使用request.getAttribute("articles");我怎么做来循环这样的对象数组?
我必须使用<jsp:useBean/>或其他什么?我试着这样做:
Article[] articles = request.getAttribute("articles");
但是我有一个错误: Article cannot be resolved to a type
我做错了什么?
Dmy*_*kov 11
您应该避免使用JSTL来使用scriptlet.请仔细阅读以下示例:
POJO类的一个例子:
public class Article {
private int id;
private String title;
public Article(int id, String title) {
this.id = id;
this.title = title;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
}
Run Code Online (Sandbox Code Playgroud)
Servlet的一个例子:
public class TestServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
Article[] articles =
new Article[] {new Article(1, "Article one"), new Article(2, "Article two")};
request.setAttribute("articles", articles);
RequestDispatcher dispatcher = request.getRequestDispatcher("/index.jsp");
dispatcher.forward(request, response);
}
}
Run Code Online (Sandbox Code Playgroud)
JSP页面的一个例子:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<c:forEach items="${articles}" var="article">
<c:out value="${article.id} ${article.title}"/><br />
</c:forEach>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
结果HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
1 Article one<br />
2 Article two<br />
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
我希望这个例子可以帮到你.
| 归档时间: |
|
| 查看次数: |
30390 次 |
| 最近记录: |