Вывести все свойства bean-компонента в EL без необходимости переопределять toString () каждый раз - PullRequest
1 голос
/ 10 октября 2011

У меня есть список / карта бинов в EL, или, по крайней мере, я предполагаю, что это так, и я сыт по горло тратить часы, пытаясь выяснить, какие разделы принадлежат друг другу.Поэтому я печатаю это просто как ${example}.

football.beans.FootballFixture@72bec69 [match=football.domain.FootballMatch@773aa1d5 [id = 360496, конкуренция = PREMIERSHIP, seasonId = 2011, groupName=, roundType =, roundNumber =, matchPeriod = FULL_TIME, matchDay = 3, venueId = 33, место проведения = White Hart Lane, venueCity = Лондон, homeTeamId = t6, awayTeamId = t43, homeScore = 1, awayScore = 5, бомбардиры = [футбол.domain.Score @ 3d5bed54 [567825, AWAY, 2011-08-28 14: 05: 05.0,34, ЦЕЛЬ, ДЗЕКО, FIRST_HALF

В настоящее время я переопределяю toString() для моих бобов каждыйвремя.Было бы здорово иметь что-то похожее на PHP print_r в JSP.Кто-нибудь знает, как остановить мою вечную головную боль, вызванную этой проблемой.

Ответы [ 2 ]

1 голос
/ 14 января 2016

Вы можете использовать Pojomatic lib.

Если вы используете maven, добавьте зависимость к pom.xml.

<dependency>
    <groupId>org.pojomatic</groupId>
    <artifactId>pojomatic</artifactId>
    <version>1.0</version>
</dependency>

Затем добавьте @AutoProperty аннотацию к классу, который вы хотите прочитать, например PostVo.java.

И переопределить метод toString следующим образом:

@Override
 public String toString() {
     return Pojomatic.toString (this);
}

Вы можете переопределить hashCode() и equals(Object obj).

@Override
 public boolean equals(Object obj) {
     return Pojomatic.equals (this, obj);
}

@Override
 public int hashCode() {
     return Pojomatic.hashCode (this);
}
1 голос
/ 01 ноября 2011

Импортируйте библиотеку Джексона JSON и сделайте что-то вроде этого (предполагая, что «myList» - это список / карта, которые вы уже определили):

 ObjectMapper mapper = new ObjectMapper();
 System.out.println( mapper.defaultPrettyPrintingWriter().writeValueAsString(myList) );

Это выведет ваш полный список в виде строки для стандартного вывода.

Надеюсь, это поможет.

...