【发布时间】:2017-05-28 17:48:02
【问题描述】:
已经有很多关于使用的问题:
- 属性中的 EL (How to use EL with <ui:repeat var> in id attribute of a JSF component)
- Facelets 中的 JSTL (JSTL in JSF2 Facelets... makes sense?)
- 查看构建时间 (What's the view build time?)
我的问题应该解决 EL 表达式在 JSF 组件的 id 属性中的一般用法。
假设我们有如下示例代码(这段代码的有用性不应该受到质疑):
<h:form id="#{bean.property}">
<h:outputText value="#{bean.property}" />
</h:form>
现在我有以下问题:
- 可以在
h:form或其他JSF组件的id属性中使用EL表达式吗? - 如果在 id 属性中使用 EL 表达式,有哪些注意事项?
- JSF 组件的 id 属性必须在视图构建时可用。像上面一样,延迟的 EL 表达式在访问属性时进行评估。因此,如果 id 属性中有 EL 表达式,EL 表达式的结果在视图构建时可用?
- 我读到EL表达式可以用于
javax.el.ValueExpression类型的属性,但id通常是String(https://coderanch.com/t/550270/java/null-variable-id-attribute)类型。因此,如果表达式的计算结果为字符串,则只能在 id 属性中使用 EL 表达式?
如果您在 google 上搜索“id 属性中的 EL 表达式”,有人说您不能在 id 属性中使用 EL 表达式,但上面的示例代码完全可以正常工作。本题主要讨论id属性中EL表达式使用的可推荐性。
感谢您的回答!
【问题讨论】:
-
" 像上面一样,在访问属性时进行评估。因此,如果您在 id 属性中有 EL 表达式,EL 表达式的结果在视图构建时可用?" i> 试试...如果可行,您也可以回答大多数其他问题。
-
@Kukeltje 确实有效,但我的问题是为了讨论可推荐性。
-
问题 1:如果不行,他们很可能会阻止它 问题 2/3:它在迭代 jsf 组件时不起作用,因为那是视图渲染时间(jstl 应该工作 irrc) , 问题4:没有想法,'试试'?我提出的更基本的问题是:你为什么想要这个?我从来不需要做这样的事情