You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@myfaces.apache.org by "Leyzerzon, Simeon" <si...@credit-suisse.com> on 2007/03/26 21:51:44 UTC
javax.faces.el.PropertyNotFoundException: Base is null
I'm getting the following exception when clicking on paginator or command link in facilityTab.jsp:
javax.faces.el.PropertyNotFoundException: Base is null: .facility at org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:477) at org.apache.myfaces.el.ValueBindingImpl.getType(ValueBindingImpl.java:175) at org.apache.myfaces.shared_tomahawk.renderkit._SharedRendererUtils.findUIOutputConverter(_SharedRendererUtils.java:58) at org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.findUIOutputConverter(RendererUtils.java:333) at org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.getConvertedUIOutputValue(RendererUtils.java:627) at org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTextRendererBase.getConvertedValue(HtmlTextRendererBase.java:191) at javax.faces.component.UIInput.getConvertedValue(UIInput.java:402) at javax.faces.component.UIInput.validate(UIInput.java:356) at javax.faces.component.UIInput.processValidators(UIInput.java:190)
Here is the structure of my pages:
--layout.jsp
<f:view>
<h:form id="layoutFrm">
<t:div style="width:70%">
<s:fieldset legend="Search Results" >
<%-- search results tabset --%>
<t:panelGrid columns="1" cellpadding="2" cellspacing="2" >
<t:column>
<f:subview id="tabset">
<jsp:include page="searchResults.jsp" flush="false"/>
</f:subview>
</t:column>
~~~~~~~~~~~~~~~
--searchResults.jsp
<t:panelTabbedPane>
<t:panelTab label="Facility" >
<f:subview id="facil">
<jsp:include page="facilityTab.jsp" flush="false"/>
</f:subview>
</t:panelTab>
~~~~~~~~~~~~
--facilityTab.jsp
<t:saveState value="#{facilityTable}" ></t:saveState>
<!-- core list table usage and tag reference -->
<t:dataTable value="#{facilityTable.facilities}" var="facility"
id="facilityData"
cellpadding="0" cellspacing="0" width="100%" border="0"
preserveDataModel="false"
forceId="true"
rows="6"
rowClasses="even,odd,even,odd,even,odd"
rowIndexVar="rowIndex"
sortColumn ="#{facilityTable.sort}"
sortAscending ="#{facilityTable.ascending}"
>
<t:column>
<t:graphicImage value="../../img/checkmark.gif" alt="Current Selection" rendered="#{rowIndex==facilityTable.selectedRowIndex && facilityTable.facility!=null}">
</t:graphicImage>
</t:column>
<t:column>
<f:facet name="header" >
<h:outputText value="Select One" id="h1"/>
</f:facet>
<t:commandLink action="#{facilityTable.viewFacility}" >
<t:graphicImage value="../../img/edit_icon.gif" border="0" alt="Click here to edit the record" />
<f:param name="selectedRowIndex" value="#{rowIndex}"/>
</t:commandLink>
</t:column>
<t:column id="c1">
<f:facet name="header" >
<t:commandSortHeader columnName="name" arrow="true" id="s1">
<h:outputText value="Name" id="h2"/>
</t:commandSortHeader>
</f:facet>
<t:inputText value="#{facility.firstName}" id="p1"/>
<f:verbatim> </f:verbatim>
<t:inputText value="#{facility.lastName}" id="p2"/>
</t:column>
<t:column id="c3">
<f:facet name="header">
<t:commandSortHeader columnName="address" arrow="true" id="s2" >
<h:outputText value="Address" id="h3"/>
</t:commandSortHeader>
</f:facet>
<t:inputText value="#{facility.primaryResidentAddress.addressOne}" id="a1" size="35" maxlength="100" />
<f:verbatim> </f:verbatim>
<t:inputText value="#{facility.primaryResidentAddress.city}" size="10" maxlength="20" id="a2"/>
<f:verbatim> </f:verbatim>
<t:inputText value="#{facility.primaryResidentAddress.state}" size="2" maxlength="2" id="a3"/>
<f:verbatim> </f:verbatim>
<t:inputText value="#{facility.primaryResidentAddress.zipCode}" size="5" maxlength="10" id="a4"/>
</t:column>
</t:dataTable>
<!-- core pagnation reference -->
<h:panelGrid columns="22" cellpadding="0" cellspacing="0" border="0" width="80" >
<t:dataScroller id="facilityDataScroller"
for="facilityData"
fastStep="10"
pageCountVar="pageCount"
pageIndexVar="pageIndex"
paginator="true"
paginatorMaxPages="9"
paginatorTableClass="paginator"
paginatorActiveColumnStyle="font-weight:bold;"
>
<f:facet name="first" >
<h:graphicImage url="../../img/FirstPage.gif" style="margin-top:4pt;"/>
</f:facet>
<f:facet name="last">
<h:graphicImage url="../../img/LastPage.gif" style="margin-top:4pt;"/>
</f:facet>
<f:facet name="previous">
<h:graphicImage url="../../img/PreviousItem.gif" style="margin-top:4pt;"/>
</f:facet>
<f:facet name="next">
<h:graphicImage url="../../img/NextItem.gif" style="margin-top:4pt;"/>
</f:facet>
</t:dataScroller>
</h:panelGrid>
Could someone please help. Is this a valid structure to have a data scroller or a command link inside a tab in a tabset.
Thank you,
Simeon
==============================================================================
Please access the attached hyperlink for an important electronic communications disclaimer:
http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
==============================================================================
Re: javax.faces.el.PropertyNotFoundException: Base is null
Posted by Simon Kitching <si...@rhe.co.nz>.
Are you sure that expression "#{facilityTable.facilities}" doesn't
return a collection that contains the value NULL?
Everything else looks ok to me at first glance - though forceId really
really sucks, and should be avoided if at all possible as it totally
breaks "encapsulation" of pages.
Leyzerzon, Simeon wrote:
> I'm getting the following exception when clicking on paginator or
> command link in facilityTab.jsp:
> javax.faces.el.PropertyNotFoundException: Base is null: .facility at
> org.apache.myfaces.el.ValueBindingImpl.resolveToBaseAndProperty(ValueBindingImpl.java:477)
> at
> org.apache.myfaces.el.ValueBindingImpl.getType(ValueBindingImpl.java:175)
> at
> org.apache.myfaces.shared_tomahawk.renderkit._SharedRendererUtils.findUIOutputConverter(_SharedRendererUtils.java:58)
> at
> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.findUIOutputConverter(RendererUtils.java:333)
> at
> org.apache.myfaces.shared_tomahawk.renderkit.RendererUtils.getConvertedUIOutputValue(RendererUtils.java:627)
> at
> org.apache.myfaces.shared_tomahawk.renderkit.html.HtmlTextRendererBase.getConvertedValue(HtmlTextRendererBase.java:191)
> at javax.faces.component.UIInput.getConvertedValue(UIInput.java:402) at
> javax.faces.component.UIInput.validate(UIInput.java:356) at
> javax.faces.component.UIInput.processValidators(UIInput.java:190)
>
>
> Here is the structure of my pages:
>
> --layout.jsp
> <f:view>
>
> <h:form id="layoutFrm">
> <t:div style="width:70%">
> <s:fieldset legend="Search Results" >
> <%-- search results tabset --%>
> <t:panelGrid columns="1" cellpadding="2" cellspacing="2" >
> <t:column>
> <f:subview id="tabset">
> <jsp:include page="searchResults.jsp"
> flush="false"/>
> </f:subview>
> </t:column>
> ~~~~~~~~~~~~~~~
>
>
> --searchResults.jsp
>
> <t:panelTabbedPane>
> <t:panelTab label="Facility" >
> <f:subview id="facil">
> <jsp:include page="facilityTab.jsp"
> flush="false"/>
> </f:subview>
> </t:panelTab>
>
> ~~~~~~~~~~~~
>
> --facilityTab.jsp
> <t:saveState value="#{facilityTable}" ></t:saveState>
>
> <!-- core list table usage and tag reference -->
> <t:dataTable value="#{facilityTable.facilities}"
> var="facility"
> id="facilityData"
> cellpadding="0" cellspacing="0" width="100%"
> border="0"
> preserveDataModel="false"
> forceId="true"
> rows="6"
> rowClasses="even,odd,even,odd,even,odd"
> rowIndexVar="rowIndex"
> sortColumn ="#{facilityTable.sort}"
> sortAscending ="#{facilityTable.ascending}"
> >
>
> <t:column>
>
> <t:graphicImage value="../../img/checkmark.gif" alt="Current
> Selection" rendered="#{rowIndex==facilityTable.selectedRowIndex &&
> facilityTable.facility!=null}">
>
> </t:graphicImage>
> </t:column>
> <t:column>
>
> <f:facet name="header" >
> <h:outputText value="Select One" id="h1"/>
> </f:facet>
> <t:commandLink
> action="#{facilityTable.viewFacility}" >
> <t:graphicImage value="../../img/edit_icon.gif"
> border="0" alt="Click here to edit the record" />
> <f:param name="selectedRowIndex"
> value="#{rowIndex}"/>
> </t:commandLink>
>
>
> </t:column>
> <t:column id="c1">
> <f:facet name="header" >
> <t:commandSortHeader
> columnName="name" arrow="true" id="s1">
> <h:outputText
> value="Name" id="h2"/>
>
> </t:commandSortHeader>
> </f:facet>
> <t:inputText
> value="#{facility.firstName}" id="p1"/>
>
> <f:verbatim> </f:verbatim>
> <t:inputText
> value="#{facility.lastName}" id="p2"/>
> </t:column>
>
>
>
> <t:column id="c3">
> <f:facet name="header">
> <t:commandSortHeader columnName="address"
> arrow="true" id="s2" >
> <h:outputText value="Address" id="h3"/>
> </t:commandSortHeader>
> </f:facet>
> <t:inputText
> value="#{facility.primaryResidentAddress.addressOne}" id="a1" size="35"
> maxlength="100" />
>
> <f:verbatim> </f:verbatim>
> <t:inputText
> value="#{facility.primaryResidentAddress.city}" size="10" maxlength="20"
> id="a2"/>
>
> <f:verbatim> </f:verbatim>
> <t:inputText
> value="#{facility.primaryResidentAddress.state}" size="2" maxlength="2"
> id="a3"/>
>
> <f:verbatim> </f:verbatim>
> <t:inputText
> value="#{facility.primaryResidentAddress.zipCode}" size="5"
> maxlength="10" id="a4"/>
>
> </t:column>
>
>
>
>
> </t:dataTable>
> <!-- core pagnation reference -->
> <h:panelGrid columns="22" cellpadding="0"
> cellspacing="0" border="0" width="80" >
> <t:dataScroller id="facilityDataScroller"
> for="facilityData"
> fastStep="10"
> pageCountVar="pageCount"
> pageIndexVar="pageIndex"
> paginator="true"
> paginatorMaxPages="9"
> paginatorTableClass="paginator"
> paginatorActiveColumnStyle="font-weight:bold;"
> >
>
> <f:facet name="first" >
> <h:graphicImage
> url="../../img/FirstPage.gif" style="margin-top:4pt;"/>
> </f:facet>
> <f:facet name="last">
> <h:graphicImage
> url="../../img/LastPage.gif" style="margin-top:4pt;"/>
> </f:facet>
> <f:facet name="previous">
> <h:graphicImage
> url="../../img/PreviousItem.gif" style="margin-top:4pt;"/>
> </f:facet>
> <f:facet name="next">
> <h:graphicImage
> url="../../img/NextItem.gif" style="margin-top:4pt;"/>
> </f:facet>
>
> </t:dataScroller>
>
> </h:panelGrid>
>
>
> Could someone please help. Is this a valid structure to have a data
> scroller or a command link inside a tab in a tabset.
>
> Thank you,
> Simeon
>
> ==============================================================================
> Please access the attached hyperlink for an important electronic communications disclaimer:
>
> http://www.credit-suisse.com/legal/en/disclaimer_email_ib.html
> ==============================================================================
>