Как перебрать карту в списке лучшим способом - PullRequest
0 голосов
/ 10 марта 2010

Весенний шаблон JDBC возвращает мне список, который выглядит следующим образом:

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

Я хочу, чтобы приведенный выше список печатался в формате jsp, как показано ниже:

CSC-CSC
PG1-PG1

Можете ли вы сказать мне лучший способ сделать это?

Ответы [ 4 ]

2 голосов
/ 10 марта 2010
<c:forEach var="map" items="${list_with_maps_inside}">
  ${map['CODE_C']} ${map['DESC_C']}
</c:forEach>
1 голос
/ 10 марта 2010

Хотя это не совсем ваш вопрос, я думаю, что лучше всего использовать Mapper для получения результатов. Если вы сделаете это, вы получите список объектов, которые вы можете легко перебрать, используя цикл 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;
    }
}
1 голос
/ 10 марта 2010

Похоже, это список карт.

Предположим, что вы присвоили его List<Map<?,?>> с именем rows:

for (Map<?,?> row : rows)
  out.format("%s-%s ",row.get("CODE_C"),row.get("DESC_C"));
0 голосов
/ 10 марта 2010
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.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...