У меня есть следующий код, и commandLink
в каждой строке должен передавать username
бину, но он принимает значение NULL. Это почему? DataProviderBean
равно SessionScoped
.
<h:form>
<rich:dataTable value="#{dataProviderBean.profileStats}" var="item"
id="statsTable">
<f:facet name="noData">No stats are available.</f:facet>
<rich:column filterValue="#{filteringBean.usernameFilter}"
filterExpression="#{fn:containsIgnoreCase(item.profile.username, filteringBean.usernameFilter)}">
<f:facet name="header">
<h:outputText value="Profile" />
<br />
<h:inputText value="#{filteringBean.usernameFilter}">
<a4j:ajax event="keyup" render="statsTable@body" execute="@this" />
</h:inputText>
</f:facet>
#{item.profile.username}
</rich:column>
<rich:column>
<f:facet name="header">AO Messages Count</f:facet>
#{item.aoMessagesCount}
</rich:column>
<rich:column>
<f:facet name="header">MO Messages Count</f:facet>
#{item.moMessagesCount}
</rich:column>
<rich:column>
<f:facet name="header">Administration</f:facet>
<a4j:commandLink execute="@this" render="@none"
oncomplete="#{rich:component('confirmPane')}.show()">
<h:graphicImage url="./resources/images/delete.png" alt="Delete" />
<a4j:param value="#{item.profile.username}"
assignTo="#{deleteStatsBean.username}" />
</a4j:commandLink>
</rich:column>
</rich:dataTable>
<a4j:jsFunction name="remove" action="#{deleteStatsBean.delete}"
render="statsTable" execute="@this"
oncomplete="#{rich:component('confirmPane')}.hide();" />
<rich:popupPanel id="confirmPane" autosized="true">
<h:outputText value="Are you sure you want to delete the profile statistics?" />
<br />
<a4j:commandButton value="Delete" onclick="remove(); return false;" />
<a4j:commandButton value="Cancel"
onclick="#{rich:component('confirmPane')}.hide(); return false;" />
</rich:popupPanel>
</h:form>