Связывание строк с Enum внутри JSP работает на Jetty, но не на Tomcat

Я борюсь со странным поведением между Tomcat и Jetty.

Внутри файла тега я ссылаюсь на другой тег (основанный на SimpleTag), который имеет два атрибута. Одним из них является Enum (PictureScale) с несколькими значениями (S,M,L,XL,...). Использование простой строки для этого атрибута прекрасно работает на Jetty, но создает исключение на Tomcat.

Исключение:

javax.servlet.ServletException: 
    javax.servlet.jsp.JspException: 
        org.apache.jasper.JasperException: Unable to convert string "S" to class "com.xxx.PictureScale" for attribute "scale": Property Editor not registered with the PropertyEditorManager
    org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:907)`

Тег:

<h:picture picture="${o.titlePicture}" scale="S" />

Кстати, я также протестировал несколько версий Tomcat, всегда с одинаковым результатом.

Кто-нибудь знает, что не так? Заранее спасибо!

1 ответ

Решение

Решение довольно простое (даже мне потребовалось несколько дней, чтобы найти его). Все, что мне нужно сделать, это заключить в скобки значение.

<h:picture picture="${o.titlePicture}" scale="${'S'}" />

Дополнительная информация может быть найдена: Передача значения перечисления в качестве атрибута тега в JSP

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