0

我正在尝试填充一个下拉列表。我有一个哈希图,从中我得到了键和值。我有一个 bean,我从中得到一个字符串值。现在我想像这样填充下拉列表:

如果 bean 值等于 hashmap 键,那么我必须在下拉列表中将键和值设为“已选择”,否则,字符串“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 根本不会出现。

我哪里错了?请帮忙?

4

1 回答 1

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>
<%
    }
%>

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

于 2012-11-28T15:00:29.023 回答