我正在尝试填充下拉列表。我有一个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根本不会出现。
我哪里错了?请帮助?
答案 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>
<%
}
%>
注意:它尚未经过测试或验证语法,可能存在一些小错误。