Я создал пользовательский тег JSP, который должен принимать список продуктов для рендеринга, но у меня возникают проблемы с выяснением того, как передать список тегу. Список продуктов существует в виде bean-объекта в области страницы. Веб-приложение написано на Struts 1.2.x с использованием тега Struts .
.
Вот упрощенная версия моего кода:
renderProducts.tag
<%@ tag language="java" pageEncoding="ISO-8859-1" body-content="empty" %>
<%@ attribute name="products" required="false" type="ProductIf[]" %>
<logic:iterate id="product" name="${products}" type="ProductIf">
<!-- Render the product -->
</logic:iterate>
ProductDetail.jsp
<bean:define id="relatedProducts" name="productMgr" property="relatedProducts />
<my:renderProducts products="${relatedProducts}" />
Однако, когда я просматриваю страницу, я получаю исключение:
Невозможно преобразовать строку "$ {relatedProducts}" в класс "[Lcom.foo.ProductIf;" для атрибута "products": редактор свойств не зарегистрирован в PropertyEditorManager
Так что, похоже, синтаксис ${}
- это не то, что мне нужно делать, так как он все равно интерпретируется как буквальная строка. Я также попытался передать имя бина без ${}
с тем же результатом. Какой правильный синтаксис?
(Примечание: пожалуйста, прости меня, если этот вопрос основан на шаткой основе неверных предположений, но я новичок в разработке Java EE, и в настоящее время происходит немало путаницы.)