Java ArrayList需要在响应属性中才能访问同一JSP的JSTL
为什么在JSTL中使用Java ArrayList需要在响应属性中才能访问同一JSP的JSTL,java,jsp,arraylist,Java,Jsp,Arraylist,为什么在JSTL中使用ArrayList时需要将其放置在请求.setAttt(…)中,而在同一jsp中不需要将其放置在普通字符串数组中 ArrayList<String> list = new ArrayList(); while (r.next()) { list.add(r.getString("stu_first_name")); } <c:forEach items="${list}" va
ArrayList
时需要将其放置在请求.setAttt(…)
中,而在同一jsp中不需要将其放置在普通字符串数组中
ArrayList<String> list = new ArrayList();
while (r.next()) {
list.add(r.getString("stu_first_name"));
}
<c:forEach items="${list}" var="names">
<tr>
<td>${names}</td><br/>
</tr>
</c:forEach>
你不需要
request.setAttribute("list", list);
为了
<c:forEach to work>
必须使用${directive.list}
才能使其工作?
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.util.*" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<%
String[] colors = {"Red", "Green", "Blue"};
//ArrayList<String> arrcolors = new ArrayList();
//colors must be set to request for JSTL to access in code line.
request.setAttribute("colors", colors);
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>EL Page</title>
</head>
<body>
<form name="tester" action="post" method="/dropentry">
<select>
<c:forEach items="${colors}" var="names">
<option value="${names}">${names}</option>
</c:forEach>
</select>
<input type="submit" value="Enter James"
</form>
埃尔佩奇
${names}
响应没有属性。jspel总是使用属性。无论是数组还是列表都不会改变任何东西。尝试创建一个尽可能简单的JSP,尝试访问一个未设置为属性的数组,您将看到它不起作用。如果你想让它工作,那么在这里发布这个完整的简单示例。还有,是JSTL,不是JSLT。对不起,是请求。。并更新了JSTL——奇怪的是,当必须设置Obj时,可以在JSTL中使用一个简单的字符串而不设置out。不,这不是真的。尝试创建一个可复制的示例。嗯,我想我在使用它时错过了代码的这一部分。你是对的,谢谢,所以他们需要在JSTL访问请求中。
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@page import="java.util.*" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<!DOCTYPE html>
<html>
<%
String[] colors = {"Red", "Green", "Blue"};
//ArrayList<String> arrcolors = new ArrayList();
//colors must be set to request for JSTL to access in code line.
request.setAttribute("colors", colors);
%>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>EL Page</title>
</head>
<body>
<form name="tester" action="post" method="/dropentry">
<select>
<c:forEach items="${colors}" var="names">
<option value="${names}">${names}</option>
</c:forEach>
</select>
<input type="submit" value="Enter James"
</form>