我正在尝试使用字段类型“selec”创建一个JSP页面,并在其中包含我从数据库中的查询中获取的元素列表。
我的代码:
<%boolean list=false;
List listEnv=(List)request.getAttribute("ListEnvironment");
if(listEnv!=null)%>
Environment:<select name="Environment">
<option></option>
<%for(int x=0;x<listEnv.size();x++){
if(x==0){
ListOneElement c=(ListOneElement)listEnv.get(x);%>
<option><%=c.getString1()%></option>
<%}else if(x==1){
ListOneElement c=(ListOneElement)listEnv.get(x);%>
<option><%=c.getString1()%></option>
<%}else if(x==2){
ListOneElement c=(ListOneElement)listEnv.get(x);%>
<option><%=c.getString1()%></option>
<%}else if(x==3){
ListOneElement c=(ListOneElement)listEnv.get(x);%>
<option><%=c.getString1()%></option>
// So on....
<%list=true;%>
<%if(!list){{%>
<%}}%>
<%}}%>
</select>
上面的代码工作正常,但我的问题是,当我的查询结果中的元素少于代码中的选项时,它会失败。
我如何包含一个具有查询大小的循环或类似的循环,以便编写与查询中的元素一样多的选项。让我们说是动态的吗?
非常感谢提前
答案 0 :(得分:0)
在jsp文件
上使用它<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
并用于跟踪迭代
Select
<select>
<c:forEach var="item" items="${ListEnvironment}">
<option><c:out value="${item.string1}"/></option>
</c:forEach>
</select>
注意:永远不要使用scriptlet
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Hello World!</h1>
Environment:<select name="Environment">
<option></option>
<c:forEach var="item" items="${ListEnvironment}">
<option>
<c:out value="${item.string1}"/>
</option>
</c:forEach>
</select>
</body>
</html>
答案 1 :(得分:0)
<%for(int x=0;x<listEnv.size();x++){
ListOneElement c=(ListOneElement)listEnv.get(x);%>
<option><%=c.getString1()%></option><%}
这已经足够了,你不需要if条件