String中的Enum绑定在Jetty上运行,但不在Tomcat上运行

时间:2011-11-18 20:28:03

标签: jsp tomcat enums jetty propertyeditor

我正在努力解决Tomcat和Jetty之间的奇怪行为。

在标签文件中,我引用另一个标签(基于SimpleTag),它有两个属性。一个是具有多个值(S,M,L,XL,...)的Enum(PictureScale)。对这个属性使用一个简单的String可以在Jetty上正常工作但在Tomcat上抛出一个Exception。

例外:

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 个答案:

答案 0 :(得分:3)

解决方案非常简单(即使花了几天时间才找到它)。我需要做的就是用括号括起来。

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

其他信息可以是: Passing a enum value as a tag attribute in JSP