【发布时间】:2015-07-17 14:46:34
【问题描述】:
在 primefaces 5.1 中,只在托管 bean 中引用 getter 没有问题
<ui:param name="curSearch" value="#{searchBL.getSelectedSearch()}" />
改成primefaces 5.2.2我要做的
<ui:param name="curSearch" value="#{searchBL.selectedSearch}" />
并提供一个 getter 和一个 setter。为什么?
例外:
09:35:29,178 SEVERE [javax.enterprise.resource.webcontainer.jsf.application] (http-/0.0.0.0:9090-6) Error Rendering View[/views/main.xhtml]: javax.el.ELException: /sections/search/searchOptions.xhtml @23,111 value="#{curSearch.sortPropertyName}": /sections/search/firstSearchTab.xhtml @44,53 value="#{curSearch}": /sections/searchMaskContent.xhtml @38,74 value="#{searchBL.getSelectedSearch()}": Cannot find method 'getSelectedSearch' in 'class SearchBL$Proxy$_$$_WeldClientProxy'
at com.sun.faces.facelets.el.TagValueExpression.getType(TagValueExpression.java:103) [jsf-impl-2.2.10.jar:2.2.10]
at org.primefaces.el.ValueExpressionAnalyzer.intercept(ValueExpressionAnalyzer.java:69) [primefaces-5.2.2.jar:5.2.2]
at org.primefaces.el.ValueExpressionAnalyzer.getReference(ValueExpressionAnalyzer.java:27) [primefaces-5.2.2.jar:5.2.2]
at org.primefaces.metadata.BeanValidationMetadataExtractor.extractPropertyDescriptor(BeanValidationMetadataExtractor.java:64) [primefaces-5.2.2.jar:5.2.2]
at org.primefaces.metadata.BeanValidationMetadataExtractor.extractConstraintDescriptors(BeanValidationMetadataExtractor.java:51) [primefaces-5.2.2.jar:5.2.2]
at org.primefaces.metadata.BeanValidationMetadataExtractor.extractDefaultConstraintDescriptors(BeanValidationMetadataExtractor.java:46) [primefaces-5.2.2.jar:5.2.2]
at org.primefaces.component.outputlabel.OutputLabelRenderer.isNotNullDefined(OutputLabelRenderer.java:139) [primefaces-5.2.2.jar:5.2.2]
at org.primefaces.component.outputlabel.OutputLabelRenderer.encodeEnd(OutputLabelRenderer.java:121) [primefaces-5.2.2.jar:5.2.2]
at javax.faces.component.UIComponentBase.encodeEnd(UIComponentBase.java:919) [jsf-api-2.2.10.jar:2.2]
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:312) [jsf-impl-2.2.10.jar:2.2.10]
at com.sun.faces.renderkit.html_basic.GroupRenderer.encodeChildren(GroupRenderer.java:114) [jsf-impl-2.2.10.jar:2.2.10]
我用的是 JUEL EL,也许这就是问题所在?
【问题讨论】:
-
你能提供更多的上下文吗?
<ui:param>不是来自 PrimeFaces。它来自 Facelets。#{}的东西也不是来自 PrimeFaces。它来自 JSF 和容器。所以很奇怪它的行为受到 PrimeFaces 升级的影响。这更有可能是一种误解。 -
我使用 juel 2.2.7。如果我只将 pf 版本从 5.1.17 更改为 5.2.2,我会收到此异常。使用 5.1.17 它可以正常工作。
-
ui:include 只是一个例子。我不得不在几个地方更改它(顺便切换回 5.1.17 以解决另一个问题)
-
看起来他们以不兼容的方式更改了
ValueExpressionAnalyzer。报告问题。 -
只是想知道这如何导致 5.2 发布。
标签: jsf-2 primefaces facelets jsf-2.2 juel