2010-03-17 42 views
5

无论何时做<c:set var="name" value="1"/>#{name}总是一个字符串,如#{name.class}所证明的。使用c:设置设置非字符串值

有什么办法在JSF/Facelets上下文中设置一个范围属性是一个Integer或Long的文字值?

回答

3

EL有自动类型转换。这article有一些很好的信息。但是,缺点是你不应该在意。只要param.month实际上是一个Integer,你就应该可以做下面的事情。

<c:set var="myInteger" value="${param.month}"/> 
<p> 
The value of myInteger is:<c:out value="${myInteger}"/> 
Perform a multiplication operation to show that the type is correct: 
<c:out value="${myInteger *2}"/> 
+0

+1虽然我纠正你错误地称它为JSTL而不是EL。 JSTL是一个taglib,如http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/所述,EL是这些JSP/EL规范中概述的那些'$ {}'事物:https: //jsp.dev.java.net/spec/jsp-2_1-fr-spec-el.pdf – BalusC 2010-03-17 17:47:24

+0

啊,我只需要使用表达式而不是文字,所以如果我做了value =“#{1}”那么这将是一个漫长的过程。尽管如此,我仍然不喜欢如何控制它是长期的还是整体的。 – GreenieMeanie 2010-03-17 17:47:45

+0

谢谢,只是一个错字。我的错。现在我已经离开了Java土地一段时间了。 – 2010-03-17 17:48:48