Пользовательский рендеринг в JSP на основе типа класса без instanceof

Преобразуйте массив в коллекцию с помощью помощника collect и выполните над ним операции. Есть много вспомогательных функций для достижения того, что вы пытаетесь сделать, с небольшим количеством строк кода.

5
задан Kevin Crowell 29 March 2009 в 14:35
поделиться

3 ответа

Вы могли создать интерфейс с общепринятой методикой для каждого класса для реализации, который испустил HTML/JSP, в котором Вы нуждались полиморфным способом. Я не являюсь настолько сумасшедшим об этом предложении, потому что оно пропускает пользовательский интерфейс в образцовые классы плохим способом. Возможно, иначе вокруг этого был бы Шаблон "посетитель", который мог испустить UI для Вас.

Так или иначе необходимо было бы добавить код, когда новый тип появился.

Я отказался бы создать пользовательскую библиотеку тегов. Необходимо было бы стараться удостовериться, что стиль не просочился в него, делая CSS, очищающий невозможный.

1
ответ дан 14 December 2019 в 09:00
поделиться

Вы могли включать другой jsp, который сделает корректный рендеринг для данного типа. например:

<c:forEach var="o" items="${bigListofObjects}"  >
    <c:import url="render-${o.type}.jsp"/>
</c:forEach>
6
ответ дан 14 December 2019 в 09:00
поделиться

У Вас мог быть внешний цикл foreach, который выполняет итерации по списку списка типов:

<c:forEach var="t" items="${listOfTypes}">
    <c:forEach var="o" items="${bigListofObjects}">
        <if test='${o.type==t}'>
            <!-- render -->
        </c:if>
    </c:forEach>
</c:forEach>
0
ответ дан 14 December 2019 в 09:00
поделиться
Другие вопросы по тегам:

Похожие вопросы: