Я хотел бы написать настраиваемый тег 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>
.