0

我正在尝试创建一个字段类型为“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>

上面的代码工作正常,但我的问题是,当我的查询结果中的元素少于我的代码中的选项时,它会失败。

我怎样才能包含一个具有我的查询大小的循环或类似的东西,以便编写与我在查询中的元素一样多的选项。比方说动态?

提前谢谢了

4

2 回答 2

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>
于 2013-10-10T13:30:59.707 回答
0
<%for(int x=0;x<listEnv.size();x++){
ListOneElement c=(ListOneElement)listEnv.get(x);%>
     <option><%=c.getString1()%></option><%}

这已经足够了,你不需要if条件

于 2013-10-10T13:40:59.800 回答