首先用Spring的JdbcTemplate从表(视图)中读出数据(返回一个java.util.List),然后把数据装进一个LinkedHashMap,最后在JSP页面中通过<c:forEach>输出。可是现在的问题是:有的时候<c:forEach>的输出顺序与表(视图)的默认顺序不符(有的时候是相符的)。代码片段如下:
LinkedHashMap kvMap = new LinkedHashMap();
jt = new JdbcTemplate(dataSource);
sql = "select " + column + " from " + table;
List list = jt.queryForList(sql);
if (list.size() > 0) {
for (Iterator it = list.iterator(); it.hasNext();) {
ListOrderedMap entity = (ListOrderedMap) it.next();
kvMap.put((String) entity.getValue(0), (String) entity.getValue(1));
}
把kvMap传递给JSP的PageContext,然后在页面取出:
<select name ="xxx">
<c:forEach var="map" items="${kvMap}">
<option value=<c:out value = "${kvMap.key}" /> > <c:out value = "${kvMap.value}" /> </option>
</c:forEach>
</select>
最后,select框中的选项顺序与表(视图)中的顺序不符。不知道问题出在了什么地方?
LinkedHashMap kvMap = new LinkedHashMap();
jt = new JdbcTemplate(dataSource);
sql = "select " + column + " from " + table;
List list = jt.queryForList(sql);
if (list.size() > 0) {
for (Iterator it = list.iterator(); it.hasNext();) {
ListOrderedMap entity = (ListOrderedMap) it.next();
kvMap.put((String) entity.getValue(0), (String) entity.getValue(1));
}
把kvMap传递给JSP的PageContext,然后在页面取出:
<select name ="xxx">
<c:forEach var="map" items="${kvMap}">
<option value=<c:out value = "${kvMap.key}" /> > <c:out value = "${kvMap.value}" /> </option>
</c:forEach>
</select>
最后,select框中的选项顺序与表(视图)中的顺序不符。不知道问题出在了什么地方?
解决方案 »
- 谁能告诉我下google的图片搜索API的网址啊,
- lucene关键字搜索问题。。。急。请教各位大侠啦!!!!
- jsp页面跳转时,怎么样指定其桢结构呢??
- 如何将一个properties文件的key绑定到struts2的下拉框中?
- 用正则表达式从网页获取的数据能导入到EXCEL表中吗??
- 哪位大侠教教我怎么用netbeans6.5连接sql2000?
- 一个JSP程序的出错信息,各位帮忙看一下!
- 关于jsp设计论坛实现帖子发表,回复的代码我不懂,求高手解释下!万分感谢!
- struts2 漏洞,升级到2.3.15之后报There is no Action mapped for namespace [/] and action na
- 急!jsp调用javabean的简单问题!
- WEB JS 初学问题
- jsp 编写的table,每行第一列都用checkbox,用来表示该行是否被选中。如果选中多行后,把这些行删除,如果没有两行相连(就是上下挨着),则删除没有问题,如果相连,则只能删除最上面一个,请问该如何解决?谢谢
你用List就不会有顺序问题了.
你可以在 put 那句之前将从 Entity 中取出的 key 输出一下,与用 c:forEach 的顺序是一致的。
System.out.println(entity.getValue(0) + " --> " + entity.getValue(1));
kvMap.put((String) entity.getValue(0), (String) entity.getValue(1));你加一句红色的那个代码,再与 c:forEach 遍历出来的对比一下就能看出顺序是否是一致的了。如果是一致的,那问题就不在这里了。