2012-10-23 100 views
0

我有数组填充元素,我想在下拉列表中显示该数组的元素。在jsp中显示下拉列表中的数组列表

这是相关的一段代码。

Party[] Parties = party.getAllParties; 

在我的jsp页面,我有

<td nowrap> 
    <select label="Party List" array="Parties" name="Party List"> 
     <option value=<%= (Parties) %>></option> 
    </select> 
</td> 

现在,当我去查查看jsp页面的源,我有

<td nowrap> 
    <select label="Party List" array="Parties" name="Party List"> 
    <option value=[Lcom.areil.pdo.party.Party;@1404de3></option> 
    </select> 
</td> 

我知道,这样的选项值设为是不正确的,我不确定什么是正确的做法。

回答

0

是的,这是因为你正试图直接显示数组。

你必须声明等于System.out.println(Parties);

您通过阵列需要循环,并通过类似指数显示parties[i]每个元素。

例子:

for(int i=0;i<Parties.length;i++) 
{ %> 
<tr><td><%=Parties[i]%></td></tr><% 
} 
+0

转储的问题,你会怎么用期权价值标签围绕着它,我有限的HTML知识是阻在这里。 – Rachel

+0

kosa

+0

@ Nambari - 我如何在请求对象中设置选定值,以便我可以从drop中检索选定值下拉列表返回。 – Rachel

0

将此代码:

<c:forEach var="party" items="${Parties}"> 
    <option value="${party}" /> 
</c:forEach> 
+1

请正确格式化为可读格式。 – Rachel

1

你想要做的是与EL执行JSTL forEach声明到您JSP并输出自己的价值观。尝试尽可能少使用脚本代码,EL设计替换脚本。

包含此:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %> 

到你的JSP可以使用JSTL。所以,你的正确JSP的代码应该是这样的:

<td> 
    <select label="Party List" array="Parties" name="Party List"> 
     <c:forEach var="party" items="${Parties}"> 
      <option value="${party}"> 
       <c:out value="${party}"/> 
      </option> 
     </c:forEach> 
    </select> 
</td> 
+0

同意保利斯 – zaffargachal

-1
<select name="party"> 
    <option value="">SELECT</option> 
    <% for(int i=0;i<Parties.size();i++){ 
     String party= (String)Parties.get(i); %> 
     <option value="<%=party%>" > <%=party%> 
     </option> 
    <%}%> 
</select>