Передать теги jsp:param из пользовательского тега в тег jsp:include?

Я пытаюсь создать файл тега, который таким образом "расширяет" <jsp:include> тег. В основном я хочу добавить пользовательскую логику, чтобы при определенных обстоятельствах она включала другой файл. У меня все нормально работает <jsp:include> теги, но я все еще борюсь, когда есть <jsp:param> теги на картинке.

То, что я хочу быть в состоянии сделать это:

В обычном коде jsp, main.jsp:

<custom:jsp-include page="include.jsp">
    <jsp:param name="a" value="b"/>
    <jsp:param name="x" value="y"/>
</custom:jsp-include>

И в файле тегов customInclude.tag:

...

<jsp:include page="${someJspFile}">
    //SOMETHING-UNKNOWN-HERE
</jsp:include>

И ожидаемый результат состоит в том, что файл в переменной someJspFile вызывается со всеми параметрами, определенными в main.jsp. Т.е. параметр a=b и x=y в этом случае.

Но я не знаю, как это сделать. Я пытался использовать <jsp:doBody var="bodyContent"/>, а затем положить ${bodyContent} внутри <jsp:include>, но это просто приводит к ошибке. Ошибка зависит от типа содержимого тела, которое я определил для файла тега. Если я установлю его на "tagdependent", то ошибка будет:

Ожидается стандартное действие "jsp:param" с атрибутами "name" и "value"

... и если я установлю его как "без скрипта", то ошибка для кода main.jsp, с ошибкой:

Действие jsp: param не должно использоваться вне элементов jsp:include, jsp:forward или jsp:params

Конечно, должен быть способ достичь этого? Или, с более общей точки зрения, должен быть способ передачи содержимого тела в неизменном виде от одного тега (в данном случае мой файл пользовательских тегов) к другому (<jsp:include> в этом случае), верно?

Обратите внимание, что это не конкретно возможность поставить ${bodyContent} внутри <jsp:include> тег, за которым я следую, так как я могу видеть, как это можно рассматривать как функцию типа eval, если она будет работать, и это не возможность сделать eval, который я ищу. Может быть, есть какой-то особенный заполнитель или аналог, который я могу поместить в <jsp:include> тег, который будет работать так же, как если бы я скопировал <jsp:param> теги из main.jsp в тело <jsp:include> в customInclude.tag?

С уважением

/Jimi

0 ответов

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