Я хотел бы написать собственный тег JSP, вывод которого включает в себя другие теги JSP, которые также должны оцениваться динамически. Но, очевидно, все, что мой TagSupport
подкласс записывает в pageContext.getOut()
, просто отправляется прямо к клиенту без какой-либо дальнейшей оценки.
У меня такое ощущение, что это должно быть очень просто, поскольку кажется, что одной из первых вещей, которые нужно использовать для пользовательских тегов: инкапсуляция и повторное использование других пользовательских тегов, избегая дублирования кода.
Как заставить следующий код делать то, что он явно хочет сделать:
public class MyTag extends TagSupport {
public int doStartTag() throws JspException {
try {
pageContext.getOut().println(
"The output from this tag includes other tags " +
"like <mypackage:myOtherTag>this one</mypackage:myOtherTag> " +
"which should themselves be evaluated and rendered."
)
} catch (IOException e) {
throw new JspException(e);
}
return SKIP_BODY;
}
}
Редактировать: некоторые фоны для моего конкретного случая использования, если это помогает. У меня есть пользовательский тег <user>
, который динамически отображает имя пользователя таким образом, чтобы это было полезно для моего приложения (при наведении мыши на имя, фамилию, номер телефона и т. Д.). Сейчас я пишу еще один тег <comment>
для отображения комментариев пользователей, и я хотел бы использовать свой существующий тег <user>
для отображения имен пользователей в выходных данных тега <comment>
.