我有一个自定义JSP标记,它使用的参数是枚举.这种方法是使用需要此枚举的其他类的结果.关键是我不知道如何在EL中分配枚举值:
<mytaglib:mytag enumParam="${now what do I type here?}" />
Run Code Online (Sandbox Code Playgroud)
到目前为止,我发现的唯一解决方法是使enumParam成为一个整数并将其转换为所需的值:
<mytaglib:mytag enumParam="3" />
Run Code Online (Sandbox Code Playgroud)
我相信必须有更好的方法来做到这一点.请帮忙.
dev*_*vpg 12
EL允许使用Enums!
使用rvalue或lvalue表达式设置标记属性值有三种方法:
[..]仅限文字:
<some:tag value ="sometext"/>
此表达式称为文字表达式.在这种情况下,属性的String值被强制转换为属性的预期类型.文字值表达式具有特殊的语法规则.有关更多信息,请参阅文字表达式.当标记属性具有枚举类型时,属性使用的表达式必须是文字表达式.例如,tag属性可以使用表达式"hearts"来表示Suit.hearts.文字被强制为Suit,属性获得值Suit.hearts.
http://download.oracle.com/javaee/5/tutorial/doc/bnahq.html
枚举:
public Enum Color{
RED, BLUE, GREEN
}
Run Code Online (Sandbox Code Playgroud)
JSP/Tag文件
<mytaglib:mytag enumParam="${'RED'}" />
Run Code Online (Sandbox Code Playgroud)
使用Tomcat 7.0.22以及Jetty 6.1.26进行测试.