Создание пользовательских тегов в JSPX
Пожалуйста, помогите мне! Я много раз создаю в любых jspx-страницах этот код
<c:if test="${not empty message}">
<div id="message">
<div class="${message.type}">${message.message}</div>
</div>
</c:if>
Могу ли я создать тег один раз и включить его в мои страницы, как (например) в Rails, который я использовал : частичный =>?
2 ответа
Создайте пользовательский тег на основе JSP и передайте сообщение, например:
<%@ attribute name="message" required="true" %>
<c:if test="${not empty message}">
<div id="message">
<div class="${message.type}">${message.message}</div>
</div>
</c:if>
Смотрите более подробную информацию, в том числе как использовать тег, где разместить тег и так далее. Все подробности смотрите в документации по пользовательским тегам Java EE 5.
Пользовательские теги на основе JSP (более или менее) эквивалентны частичным, хотя вы также можете просто <jsp:include>
Фрагменты JSP. У файлов тегов есть некоторые преимущества, у простых включений есть некоторые преимущества - что делает их наиболее понятными, часто является предметом споров.
Я лично склоняюсь к тегам, я нахожу их немного более общительными.
Вы можете создать простой тег следующим образом.
<jsp:root xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0">
<jsp:output omit-xml-declaration="yes" />
<jsp:directive.attribute name="description" type="java.lang.String" required="false" rtexprvalue="true" description="Some descripton" />
</jsp:root>
Посмотрите на @Dave Newton Link документацию по настройке.