Я хочу использовать пользовательские теги jsp для создания меню в моем приложении. Однако я хочу, чтобы весь фактический HTML содержался в файлах JSP, а не в классе Java.
Итак, предположим, у меня есть такой тег:
<mytags:Menu>
<mytags:MenuItem name="foo"/>
<mytags:MenuItem name="bar"/>
<mytags:MenuItem name="baz"/>
</mytags:Menu>
Тогда у меня может быть класс для моего тега Menu
, который выглядит следующим образом:
public class MenuPill extends TagSupport {
public int doStartTag() throws JspException {
try {
pageContext.include("/menu/menu.jsp");
} catch (ServletException e) {
throw new JspException(e);
} catch (IOException e) {
throw new JspException(e);
}
return super.doStartTag();
}
}
Мой menu.jsp
файл, который является оболочкой для самого меню, может выглядеть так:
<div id="menu>
<%somehow include the body here%>
</div>
То, что я хочу сделать, это поместить тело моего тега mytags:Menu
, который будет генерировать HTML для фактических пунктов меню, в menu.jsp
, между открывающим и закрывающим тегами. Я знаю, что могу разбить его на два разных jsp-файла, один для начального тега и один для конечного тега, но это выглядит небрежно.
Возможно ли это сделать?
Спасибо!