Создание пользовательских тегов в 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 документацию по настройке.

Другие вопросы по тегам