Переменная рендеринга JSP с тегами JSP внутри - PullRequest
0 голосов
/ 18 декабря 2010

На странице JSPX я использую пользовательский тег, и это прекрасно работает

<body>
    <ui:image name="nameOfImage"/>
</body>

Однако, если я положу <ui:image name="nameOfImage"/> в переменную body
Это не будет работать

<body>
    ${body}
</body>

Вопрос в том, как попросить движок рендеринга JSP рендерить теги jsp внутри переменной?

1 Ответ

1 голос
/ 22 декабря 2010

Насколько я знаю, нет способа сделать это напрямую.Самое близкое к тому, что вы спрашиваете, - это пользовательский тег, с которым я когда-то сталкивался из Eval taglib .Это должно быть что-то похожее на JavaScript eval() (или так они говорят).

Может быть, вы могли бы посмотреть на это и посмотреть, как оно работает, и позаимствовать некоторые идеи.

РЕДАКТИРОВАТЬ: Это не пришло мне в голову вчера, но вы могли быиспользуйте JSTL, чтобы сделать что-то подобное, хотя это работает только внутри JSP (X), если вы хотите установить содержимое переменной где-то выше (например, контроллер), оно не будет работать, поскольку оно не будет оценено, а просто выведено-ed as String.

<c:set> позволяет вам оценивать некоторый контент и помещать результат в переменную, которую вы затем можете использовать:

<c:set var="body">
   <ui:image name="nameOfImage"/>
</c:set>
....
<body>
    ${body}
</body>
...