Связывание строк с Enum внутри JSP работает на Jetty, но не на Tomcat - PullRequest
0 голосов
/ 19 ноября 2011

Я борюсь со странным поведением между 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 Ответ

3 голосов
/ 22 ноября 2011

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...