5

primefaces 5.1 では、マネージド Bean で getter のみを参照することは問題ありませんでした。

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

Primefaces 5.2.2 に変更しました

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

ゲッターとセッターを提供します。なんで?

例外:

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を使っていますが、これが問題なのでしょうか?

4

1 に答える 1

1

スタック トレースに基づいて、関連する Bean プロパティで定義されている<p:outputLabel indicateRequired="true">かどうかを確認したいと考えています。@NotNullPrimeFaces はorg.primefaces.el.ValueExpressionAnalyzer、ラベル コンポーネントに関連付けられた入力コンポーネントの値を表す EL 式を分解するために、独自に開発したものを使用しています。

ただし、5.2では、null のネストされたプロパティで EL インスペクションが失敗する問題 8093の修正の結果として、 5.1と比較して変更されました。メソッド式を区別しなくなりました。あなたの最善の策は、 PrimeFaces 担当者に問題を報告し、OmniFacesで EL 式分析ジョブを正しい方法で実行する方法を確認するように伝えることです。org.omnifaces.el.ExpressionInspector

それにもかかわらず、必須の入力コンポーネントの値として読み取り専用の値を参照しているのは、ちょっと奇妙です。

于 2015-11-18T07:42:25.080 に答える