我可以在EL 2.2中使用Get-Parameter而无需将其写入Bean吗?

时间:2012-12-29 18:53:15

标签: jsf-2 el

我想解析网址

title.xhtml?id=1

我在“title.xhtml”中的代码应该看起来像

...
<h:outputText value="#{titles.getTitle(${param.id}).id}"></h:outputText>
...

但不幸的是,这不起作用,因为不接受嵌套的“#”和“$”。 所以我的问题是:我可以使用URL参数并将其交给bean函数而不将其单独存储在bean中吗?

1 个答案:

答案 0 :(得分:1)

这是无效的EL语法。您不能也不需要以任何方式嵌套EL表达式。即使嵌套${}也无效。 #{}${}之间的唯一区别是#{}也可以执行 set 操作(如果适用),而${}可以只做获取操作。

这是有效的EL语法:

<h:outputText value="#{titles.getTitle(param.id).id}" />

请注意#{param.id}是完全合法的JSF EL语法。为避免将来出现混淆,最好确保不再使用JSF中的旧JSP EL语法${}。另请参阅Difference between JSP EL, JSF EL and Unified EL