2015-05-07 13 views
5

Mit primefaces 5.1 war es kein Problem, nur einen Getter in einer verwalteten Bohne zu verweisen wieExpression Sprachwechsel mit primefaces 5.2

<ui:param name="curSearch" value="#{searchBL.getSelectedSearch()}" /> 

geändert zu primefaces 5.2.2 I

<ui:param name="curSearch" value="#{searchBL.selectedSearch}" /> 

zu tun haben und stelle einen Getter und einen Setter zur Verfügung. Warum?

Ausnahme:

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] 

ich JUEL EL verwenden, vielleicht ist dies das Problem?

+2

Können Sie etwas mehr Kontext bereitstellen? Die '' stammt nicht von PrimeFaces. Es ist von Facelets. Die '# {}' Dinge stammen auch nicht von PrimeFaces. Es kommt von JSF und dem Container. Es ist sehr merkwürdig, dass sein Verhalten von einem PrimeFaces-Upgrade beeinflusst wird. Dies ist eher eine Fehlbeobachtung. – BalusC

+0

Ich benutze Juel 2.2.7. Wenn ich nur die PF-Version von 5.1.17 auf 5.2.2 ändere, bekomme ich diese Ausnahme. Mit 5.1.17 funktioniert es ohne Fehler. – opfau

+0

Das UI: Include ist nur ein Beispiel. Ich musste es an mehreren Stellen ändern (um am Ende an ein anderes Problem zu kleben, übrigens zurück zu 5.1.17) – opfau

Antwort

0

Basierend auf dem Stack-Trace haben Sie eine <p:outputLabel indicateRequired="true">, die überprüfen möchten, ob @NotNull für die zugehörige Bean-Eigenschaft definiert ist. PrimeFaces verwendet seinen eigenen org.primefaces.el.ValueExpressionAnalyzer für den, der den EL-Ausdruck, der den Wert der Eingabekomponente darstellt, die der Label-Komponente zugeordnet ist, aufschlüsselt.

jedoch in 5.2 war es changed wie für issue 8093 zu 5.1 als Ergebnis der Korrektur im Vergleich zu scheitern EL Inspektion auf null verschachtelten Eigenschaften. Jetzt unterscheidet es keine Methodenausdrücke mehr. Ihre beste Wette ist eine issue an PrimeFaces Jungs zu melden und ihnen zu sagen, OmniFaces org.omnifaces.el.ExpressionInspector zu sehen, wie die EL-Ausdruck-Analyse-Job der richtige Weg zu tun.

Nichtsdestoweniger ist es merkwürdig, dass Sie einen readonly Wert als Wert einer erforderlichen Eingabekomponente beziehen.