предположим, у меня есть заголовок (общий для всех страниц, относящихся к одному типу объекта).
<%@ 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?
....
дело в том, что отличается только заголовок, все остальное такое же, и чтобы использовать тот или иной заголовок, теперь у меня есть выбор / когда / тест
Да, я просто предложил использовать один common.jsp, два jsps для заголовков и два jsps для моделей. Каждое представление модели должно включать необходимый заголовок и общую часть. Тем не менее, вы всегда можете скрыть логику выбора времени в настраиваемом теге с параметром headerToUse, чтобы код был чище.
Вот как я сейчас, как я написал, у меня есть выбор, когда, это то, чего я хочу избежать по этой причине, я хотел бы отправить параметр ... иначе я не могу избежать этого выбора / когда (конечно, я могу иметь его в другом теге), но вопрос в том, могу ли я передать заголовок в качестве параметра
Вы можете взглянуть на stackoverflow.com/q/28193838/3425392, но, похоже, нет общего способа сделать это. И такая логика (включая идею иметь одно представление для разных моделей) тоже не кажется распространенной. Я лучше попробую реорганизовать код в целом.
Итак, они делают то же самое, что и я сейчас, но спасибо за ваш вклад ...




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