Связывание строк с 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