javax.el.PropertyNotFoundException: class ' 没有可读的 属性 'preference'
javax.el.PropertyNotFoundException: The class ' does not have a readable property 'preference'
我已经解决了几乎所有关于 SO 的相关问题,但找不到答案,因为我没有导致其他错误的问题,但我仍然有相同的错误结果。
我已经实现了一个 primefaces selectBooleanButton 元素并仅包含了 bean 代码。该错误意味着系统无法读取 managedBean 的 属性,但我有正确的 getter/setter 方法,因为它应该是布尔值 属性。以下是参考代码:
查看
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/templates/common/public.xhtml">
<ui:define name="title">Search</ui:define>
<ui:define name="content">
<div class="ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-grid-col-10" id="mainCol">
<h:form id="search">
<h:panelGrid columns="2" cellpadding="5">
<h:outputText value="Choose: " />
<p:selectBooleanButton id="preference" value="#{searchForm.preference}" onLabel="Yes" offLabel="No" style="width:60px" />
</h:form>
</div>
</div>
</div>
</ui:define>
</ui:composition>
</html>
豆豆:
@Named
@SessionScoped
public class SearchForm {
private boolean preference;
public boolean isPreference() {
return preference;
}
public void setPreference(boolean preference) {
this.preference = preference;
}
}
错误:
[glassfish 4.1] [SEVERE] [] [javax.enterprise.resource.webcontainer.jsf.application] [tid: _ThreadID=26 _ThreadName=http-listener-1(2)] [timeMillis: 1488954548903] [levelValue: 1000] [[
Error Rendering View[/search/searchForm.xhtml]
javax.el.PropertyNotFoundException: /search/searchForm.xhtml @49,156 value="#{searchForm.preference}": The class 'com.pc.SearchForm' does not have a readable property 'preference'.
求推荐。
这个问题已经很久了,但是发布这个答案只是为了提及原因并关闭问题。
是 glassfish 没有获取更改并重新启动它解决了问题。
因此,如果您确定自己的更改仍然出错,我想也可以怀疑服务器 :)
这是一个老问题,但这可能对某些人有所帮助。我对 Boolean
也有类似的问题。将 getter 方法从 isXxx
更改为 getXxx
解决了它。例如:
public boolean getPreference() {
return preference;
}
我已经解决了几乎所有关于 SO 的相关问题,但找不到答案,因为我没有导致其他错误的问题,但我仍然有相同的错误结果。
我已经实现了一个 primefaces selectBooleanButton 元素并仅包含了 bean 代码。该错误意味着系统无法读取 managedBean 的 属性,但我有正确的 getter/setter 方法,因为它应该是布尔值 属性。以下是参考代码:
查看
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:p="http://primefaces.org/ui">
<ui:composition template="/templates/common/public.xhtml">
<ui:define name="title">Search</ui:define>
<ui:define name="content">
<div class="ui-grid ui-grid-responsive">
<div class="ui-grid-row">
<div class="ui-grid-col-10" id="mainCol">
<h:form id="search">
<h:panelGrid columns="2" cellpadding="5">
<h:outputText value="Choose: " />
<p:selectBooleanButton id="preference" value="#{searchForm.preference}" onLabel="Yes" offLabel="No" style="width:60px" />
</h:form>
</div>
</div>
</div>
</ui:define>
</ui:composition>
</html>
豆豆:
@Named
@SessionScoped
public class SearchForm {
private boolean preference;
public boolean isPreference() {
return preference;
}
public void setPreference(boolean preference) {
this.preference = preference;
}
}
错误:
[glassfish 4.1] [SEVERE] [] [javax.enterprise.resource.webcontainer.jsf.application] [tid: _ThreadID=26 _ThreadName=http-listener-1(2)] [timeMillis: 1488954548903] [levelValue: 1000] [[
Error Rendering View[/search/searchForm.xhtml]
javax.el.PropertyNotFoundException: /search/searchForm.xhtml @49,156 value="#{searchForm.preference}": The class 'com.pc.SearchForm' does not have a readable property 'preference'.
求推荐。
这个问题已经很久了,但是发布这个答案只是为了提及原因并关闭问题。
是 glassfish 没有获取更改并重新启动它解决了问题。 因此,如果您确定自己的更改仍然出错,我想也可以怀疑服务器 :)
这是一个老问题,但这可能对某些人有所帮助。我对 Boolean
也有类似的问题。将 getter 方法从 isXxx
更改为 getXxx
解决了它。例如:
public boolean getPreference() {
return preference;
}