2010-03-10 9 views
-1

목록에서지도를 반복 스프링 JDBC 템플릿은 나에게 다음과 같은 목록을 반환하는 방법 :가장 좋은 방법

CSC-CSC 
PG1-PG1 
:
[{CODE_C=CSC, DESC_C=CSC}, {CODE_C=PG1, DESC_C=PG1}] 

내가 위의 목록을 원하는을 다음과 같이 JSP로 인쇄

이 작업을 수행하는 가장 좋은 방법을 말해 줄 수 있습니까?

+0

이 당신 반복하는 이상'List' 또는'지도'? –

+0

1>지도 개체 목록입니까? 2> Java 구문을 사용하여 컬렉션을 반복하는 방법을 알고 싶습니까? 아니면 jsp 태그를 사용하여 반복하는 방법을 알고 싶습니까? – saugata

답변

0
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. 
+0

@ponzao 자바 1.4에서 원합니다 –

+0

자바 1.4로 프로그래밍 한 적이 없다는 것을 인정해야합니다 :) 다음 조언 중 일부는 완전히 잘못되었을 수도 있습니다. Java 1.4에는 StringBuilder가 없으므로 대신 StringBuffer를 사용해야합니다. 제네릭은 Java 1.5에서 도입 되었기 때문에 List results = new ArrayList ()과 같은 컬렉션에서 형식 정보를 삭제해야합니다. List results = new ArrayList() 그러면 항목을 캐스팅 할 때 캐스팅해야합니다. 그래서 results.add (result ...) 대신 results.add ((String) result ...)를 사용하십시오. 그러나 앞서 언급했듯이 1.4에 대해서는 많이 알지 못합니다. – ponzao

1

지도 목록 인 것으로 보입니다.

rows라는 List<Map<?,?>>에 할당 한 가정 :

for (Map<?,?> row : rows) 
    out.format("%s-%s ",row.get("CODE_C"),row.get("DESC_C")); 
+0

감사합니다. –

2
<c:forEach var="map" items="${list_with_maps_inside}"> 
    ${map['CODE_C']} ${map['DESC_C']} 
</c:forEach> 
+0

이것은 올바른 JSP 답변입니다. OP가 놀랍게도이 답변을 받아들이지 않았으므로 JSTL을 설치하지 않았거나 수행 방법을 모르는 것처럼 보입니다. 코드 스 니펫을 게시하는 대신에 그것에 대해 자세히 설명해야합니다. Vijay :) – BalusC

1

은 정말 귀하의 질문에 있지만, 나는 결과를 검색 매퍼를 사용하는 것이 가장 좋은 방법입니다 생각합니다. 그렇게하면 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; 
    } 
}