【发布时间】:2012-11-16 10:30:47
【问题描述】:
我正在尝试填充下拉列表。我有一个哈希图,从中我得到了键和值。我有一个 bean,我从中得到一个字符串值。 现在我想像这样填充下拉列表:
如果 bean 值等于 hashmap 键,那么我必须在下拉列表中将键和值设为“已选择”,否则,字符串“请选择值”必须成为默认下拉选择元素和其他键值对必须在它之后。如果 bean 的值等于 hashmap 的 key,那么它们就不能再重复了。
这是我迄今为止所拥有的:
<%
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 根本不会出现。
我哪里出错了?请帮忙?
【问题讨论】:
-
请avoid这个可恶的Scriptlet。将 Java 代码移动到 Java bean(连同 Servlet)。遵循 JSTL 以及您选择和要求的一些框架(使用 ORM,如 Hibernate 或 JPA)。
-
不能用,这个项目已经过时了,需要那些格式的代码。