如何填充jsp下拉?

时间:2012-11-28 14:26:10

标签: java jsp

我正在尝试填充下拉列表。我有一个hashmap,从中我获得了关键和价值。我有一个bean,我从中得到一个字符串值。 现在我想填充这样的下拉列表:

如果bean值等于hashmap键,那么我必须在下拉列表中将键和值设置为“selected”,否则,字符串“plz select a value”必须成为默认下拉选中元素和其他键价值对必须在它之后。如果bean值等于hashmap键,则不能再重复它们。

这就是我所拥有的:

<%
String defaultText = "Please select a value";
while (iterator.hasNext()) {
Map.Entry mapEntry = (Map.Entry) i.next();
// getKey Method of HashMap access a key of map
String keyValue = (String) mapEntry.getKey();
//getValue method returns corresponding key's value
String value = (String) mapEntry.getValue();

%>

<option  selected="selected" value="none">
<%
if( beanNo!=null && beanNo.equals(keyValue))
{
%>
<%= beanNo %> , <%= value %>
<%
}
else
{
%>
<%= defaultText %>
<%
}
%>
</option>
<option  value="">
<%= value %> , <%= keyValue %>
</option>
<%
}
%>

然而,这并没有给我预期的结果。如果bean值等于hashMap keyValue,则相同的值将出现两次,而defaultText根本不会出现。

我哪里错了?请帮助?

1 个答案:

答案 0 :(得分:2)

这应该更好:

<%
    String defaultText = "Please select a value";
%>
<option value="none"><%= defaultText %></option>
<%
    while (iterator.hasNext())
    {
        Map.Entry mapEntry = (Map.Entry) i.next();
        // getKey Method of HashMap access a key of map
        String keyValue = (String) mapEntry.getKey();
        //getValue method returns corresponding key's value
        String value = (String) mapEntry.getValue();
%>
<option <%= (beanNo!=null && beanNo.equals(keyValue)) ? "selected=\"selected\"" : "" %> value="<%= value %>">
<%= keyValue %>
</option>
<%
    }
%>

注意:它尚未经过测试或验证语法,可能存在一些小错误。