春天JDBC模板返回我看起來像下面的列表:如何循環訪問地圖列表中的最佳方式
[{CODE_C=CSC, DESC_C=CSC}, {CODE_C=PG1, DESC_C=PG1}]
我想上面的列表中印在JSP如下:
CSC-CSC
PG1-PG1
你能告訴我做到這一點的最好方法嗎?
春天JDBC模板返回我看起來像下面的列表:如何循環訪問地圖列表中的最佳方式
[{CODE_C=CSC, DESC_C=CSC}, {CODE_C=PG1, DESC_C=PG1}]
我想上面的列表中印在JSP如下:
CSC-CSC
PG1-PG1
你能告訴我做到這一點的最好方法嗎?
List<String> results = new ArrayList<String>();
for (Map<String, String> map : someList) {
StringBuilder sb = new StringBuilder();
for (String s : map.values()) {
sb.append(s).append('-');
}
String result = sb.toString();
results.add(result.substring(0, result.length() - 1); // To cut the trailing '-'
}
// Do whatever with the results.
@ponzao我想在java 1.4 – 2010-03-11 05:15:04
我不得不承認我從來沒有編程在Java 1.4 :)所以下面的一些建議可能是完全錯誤的。 Java 1.4沒有StringBuilder,所以你應該使用StringBuffer代替。因爲泛型是在Java 1.5中引入的,所以您應該從集合中刪除類型信息,例如列表
這似乎是一個地圖列表。
假設你已經將其分配到一個名爲rows
List<Map<?,?>>
:
for (Map<?,?> row : rows)
out.format("%s-%s ",row.get("CODE_C"),row.get("DESC_C"));
感謝所有的解決方案。 – 2010-03-11 07:47:39
<c:forEach var="map" items="${list_with_maps_inside}">
${map['CODE_C']} ${map['DESC_C']}
</c:forEach>
這是唯一正確的JSP答案。由於OP出人意料地沒有接受這個答案,所以看起來他沒有安裝JSTL和/或不知道該怎麼做。你應該詳細闡述一下,而不是隻發佈一個代碼段,Vijay :) – BalusC 2010-03-11 15:42:44
雖然不是真的是你的問題,我認爲這是最好使用一個映射來檢索結果。如果你這樣做,你會得到一個對象列表,你可以很容易地使用for循環迭代。從http://static.springsource.org/spring/docs/2.0.x/reference/jdbc.html
例子:
public Collection findAllActors() {
return this.jdbcTemplate.query("select first_name, surname from t_actor", new ActorMapper());
}
private static final class ActorMapper implements RowMapper {
public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
Actor actor = new Actor();
actor.setFirstName(rs.getString("first_name"));
actor.setSurname(rs.getString("surname"));
return actor;
}
}
你迭代一個'List'或'Map'? – 2010-03-10 15:53:52
1>這是一個Map對象列表嗎? 2>您是否想知道如何使用java構造對集合進行迭代,或者您想知道如何使用jsp標記進行迭代? – saugata 2010-03-10 16:04:14