Смена языка выражения с простыми словами 5.2
С Primefaces 5.1 было не проблема ссылаться только на геттер в управляемом бине, например
<ui:param name="curSearch" value="#{searchBL.getSelectedSearch()}" />
Поменял на глаголы 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, возможно, это проблема?
1 ответ
На основе трассировки стека у вас есть <p:outputLabel indicateRequired="true">
который хотел бы проверить, если таковые имеются @NotNull
определяется в связанном свойстве компонента. PrimeFaces использует свои доморощенные org.primefaces.el.ValueExpressionAnalyzer
для того, что будет разбивать выражение EL, представляющее значение входного компонента, связанного с компонентом метки.
Однако в 5.2 он был изменен по сравнению с 5.1 в результате исправления для проблемы 8093 с ошибкой проверки EL на свойствах с нулевым вложением. Теперь он больше не различает выражения метода. Лучше всего сообщить о проблеме ребятам из PrimeFaces и попросить их заглянуть в OmniFaces. org.omnifaces.el.ExpressionInspector
как правильно выполнять анализ EL выражений.
Тем не менее, довольно странно, что вы называете значение только для чтения значением требуемого компонента ввода.