【问题标题】:How to populate jsp drop down?如何填充jsp下拉?
【发布时间】: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)。
  • 不能用,这个项目已经过时了,需要那些格式的代码。

标签: java jsp


【解决方案1】:

这应该会更好:

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

注意:它没有经过测试或语法验证,可能有一些小错误。

【讨论】:

  • 这就像一个魅力,你提供的逻辑很漂亮。非常感谢,投票并接受。再次发送。
猜你喜欢
  • 2014-01-04
  • 2014-03-27
  • 2012-09-27
  • 1970-01-01
  • 2016-12-14
  • 1970-01-01
相关资源
最近更新 更多