Как проверить классификацию поля таблицы в тимелисте? - PullRequest
0 голосов
/ 11 июня 2019

У меня есть общая таблица thymeleaf следующим образом:

 <tbody>
        <th:block th:each="row : ${page.getContent()}">
            <tr>
                 <td th:each="header : ${headers}" th:text="${row.__${header}__}"/>
            </tr>
        </th:block>
    </tbody>

Таблица просто поддерживается списком, содержащим мои доменные объекты:

List<Header> headers = List.of("firstname", "lastname");
List<Person> page;

Что она делает:он зацикливает мой предопределенный список headers и выбирает только те атрибуты, которые определены в списке заголовков.

Вопрос: как добавить оценку в classtype извлеченного значения каждого поля, чтобы я мог применить пользовательский стиль в случае цифр?

Проблема заключается в том, что при выводе класса отображаемого значения получается java.util.ArrayList всегда !

th:text="${{row.__${header}__}.class.name}"

Почему это не показывает правильный класс элемента td?

Ответы [ 2 ]

1 голос
/ 12 июня 2019

Вы должны быть в состоянии оценить заголовок, если вы спуститесь на уровень ниже.Я думаю, что операция препроцессора может не дать вам ссылку на объект header на том же элементе td.

Этот вариант использования также может быть хорошим кандидатом на th:classappend, так как вы можете захотетьунаследовать какой-то стиль.

Также не уверен, применимо ли это, но заголовки таблиц обычно заключаются в элемент <thead>.Тогда я бы предположил, что вам нужен список из Person объектов, повторяемых в <tbody>.

Не проверял его, но попробуйте:

<thead>
     <th:block th:each="header : ${headers}">
          <th th:text="${header}" class="someClass" th:classappend="${header.name.class instanceof T(java.math.BigDecimal) ? 'someDigitClassStyle' : ''}" />
      </th:block> 
<thead>

Предполагается использованиеВесна. Ссылка

Наконец, вы можете рассмотреть утилиту Apache для isNumeric, если вы хотите более широко отлавливать цифры.

0 голосов
/ 12 июня 2019

Решение следующее для применения определенного стиля CSS на основе проверки экземпляра:

 th:text="${row.__${header}__}"
 th:style="${{row.__${header}__}.get(0) instanceof T(java.math.BigDecimal)} ? 'text-align:right' : ''"/>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...