Я использую JSP-теги для инкапсуляции логики внешнего интерфейса многократного использования.
Я могу успешно передать сложный объект com.example.Product
в тег, но мне трудно передать List<Product>
в тег.
Вот мой product.tag
:
<%@ attribute name="product" required="true" type="com.example.Product" %>
<a href="/products/${product.id}/${product.slug}">${product.name}</a>
Я могу использовать это на странице JSP следующим образом:
<%@ taglib tagdir="/WEB-INF/tags" prefix="h" %>
<h:product product="${myProduct}"/>
Теперь я хотел бы создать тег для отображения списка продуктов. Я зациклился на том, как описать тип в объявлении атрибута:
<%@ attribute name="products" required="true" type="???" %>
<%@ taglib tagdir="/WEB-INF/tags" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<ul>
<c:forEach items="${products}" var="product">
<li><h:product product="${product}"/></li>
</c:forEach>
</ul>
Я пробовал следующее:
-
List<com.example.Product>
-
java.util.List<com.example.Product>
Оба имеют следующую ошибку: Unknown attribute type (java.util.List<com.example.Product>) for attribute products
Я уверен, что есть только некоторый синтаксис описания типичного типа в директиве атрибута, но я не могу найти никаких примеров.