0

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

这是相关的代码。

 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>

我知道,设置选项值的方式不正确,并且不确定什么是正确的做法。

4

4 回答 4

1

放置此代码:

<c:forEach var="party" items="${Parties}">
    <option value="${party}" />
</c:forEach>
于 2012-10-23T14:27:50.143 回答
1

您要做的是在您的中执行JSTL forEach语句并使用ELJSP输出您的值。尽量使用更少的 scriptlet 代码,EL 的设计目的是替代 scriplet。

包括这个:

<%@ 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>
于 2012-10-23T14:45:23.293 回答
0

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

您拥有的声明等于System.out.println(Parties);

您需要遍历数组并按索引显示每个元素,例如parties[i].

例子:

for(int i=0;i<Parties.length;i++) 
{ %> 
<tr><td><%=Parties[i]%></td></tr><% 
} 
于 2012-10-23T14:17:32.717 回答
-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>
于 2017-12-05T05:55:04.953 回答