Можно ли передать jsp-код в качестве параметра?

предположим, у меня есть заголовок (общий для всех страниц, относящихся к одному типу объекта).

<%@ page session = "false" contentType = "text/html;charset=UTF-8" pageEncoding = "UTF-8" %>
<%@ taglib prefix = "header" uri = "headerDir" %>
<%@ taglib prefix = "tabs" uri = "tabDir" %>
<div id = "content" class = "inside>
<header:myHeader headerData = "${myModel}">
<tabs:myTabs argument = "${someArg}"
....

поэтому в представлениях, которые используются для разных объектов, теперь я делаю

<c:choose>
     <c:when test = "${myModel.type ==FIRST_TYPE}>
         <header:myHeader headerData = "${myModel}">
      </c:when>
      <c:otherwise>
         <header:secondHeader headerData = "${myModel}">
      </c:otherwise>
<c:choose>

но я бы хотел избежать этого выбора, я могу отправить это в качестве параметра, когда я передаю аргументы? так что я могу сделать что-то вроде следующего

<%@ page session = "false" contentType = "text/html;charset=UTF-8" pageEncoding = "UTF-8" %>
<%@ taglib prefix = "header" uri = "headerDir" %>
<%@ taglib prefix = "tabs" uri = "tabDir" %>
<div id = "content" class = "inside>
<header:myHeader headerData = "${myModel}">
<tabs:myTabs argument = "${someArg}" headerToUse = "${myHeader}" //in some way pass the header?
....

Вы пробовали иметь хотя бы одно представление только для одного типа модели? Затем общие части таких представлений могут быть инкапсулированы в отдельные файлы и смешаны на целевой странице (например, с помощью включения или настраиваемых тегов).

yaeuge 10.10.2018 19:41

дело в том, что отличается только заголовок, все остальное такое же, и чтобы использовать тот или иной заголовок, теперь у меня есть выбор / когда / тест

vmrvictor 11.10.2018 07:16

Да, я просто предложил использовать один common.jsp, два jsps для заголовков и два jsps для моделей. Каждое представление модели должно включать необходимый заголовок и общую часть. Тем не менее, вы всегда можете скрыть логику выбора времени в настраиваемом теге с параметром headerToUse, чтобы код был чище.

yaeuge 11.10.2018 09:12

Вот как я сейчас, как я написал, у меня есть выбор, когда, это то, чего я хочу избежать по этой причине, я хотел бы отправить параметр ... иначе я не могу избежать этого выбора / когда (конечно, я могу иметь его в другом теге), но вопрос в том, могу ли я передать заголовок в качестве параметра

vmrvictor 11.10.2018 09:13

Вы можете взглянуть на stackoverflow.com/q/28193838/3425392, но, похоже, нет общего способа сделать это. И такая логика (включая идею иметь одно представление для разных моделей) тоже не кажется распространенной. Я лучше попробую реорганизовать код в целом.

yaeuge 11.10.2018 12:14

Итак, они делают то же самое, что и я сейчас, но спасибо за ваш вклад ...

vmrvictor 11.10.2018 12:39
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
5
6
126
0

Другие вопросы по теме