/ / Uložiť stav začiarkavacieho políčka po opätovnom načítaní stránky v JSF Primefaces - premimefaces, jsf-2.2

Uložiť zaškrtávacie políčko Po reLoadPage v JSF Primefaces - primfaces, jsf-2.2

Používam „DataTable - Selection“, (http://www.primefaces.org/showcase/ui/data/datatable/selection.xhtml) v prvočíslach 5 na kontrolu vybratých riadkov, ale keď načítam stránku znova, začiarkovacie políčka nie sú začiarknuté. Ako môžem udržať stav začiarkavacích políčok v relácii?

**

********* DataTable ****************

**

<p:dataTable  var="var" value="#{vistaBean.listaFichero}" rowKey="#{var.nombre}" paginator="true" rows="10"
selection="#{vistaBean.selectFichero}">

<f:facet name="header">
Votar ProductBox
</f:facet>


<p:column  headerText="Votar" selectionMode="multiple"/>

<p:column headerText="Nombre del Fichero">
<h:outputText value="#{var.nombre}" />
</p:column>

<p:column headerText="Ver/Descargar">
<h:commandLink id="pdf" action="#{vistaBean.downLoad}">
<f:setPropertyActionListener target="#{vistaBean.ruta}" value="#{var.ruta}" />
<h:graphicImage library="images" name="pdf.png" />
</h:commandLink>
</p:column>


</p:dataTable>


<p:commandButton value="Guardar Votos" action="#{vistaBean.addVoto()}" update="msgs"/>


<p:commandButton value="Ver Votos" update="display" oncomplete="PF("dlg").show()" icon="ui-icon-check" inmediate="true"/>

<p:dialog header="Product Box Seleccionados" modal="true" showEffect="clip" widgetVar="dlg" resizable="false">
<p:outputPanel id="display">

<p:dataList value="#{vistaBean.selectFichero}" var="v">
#{v.nombre}

</p:dataList>


</p:outputPanel>
</p:dialog>

odpovede:

0 pre odpoveď č. 1

Tento problém vyriešim inštaláciou novšej verzie Primefaces, 5.2, mal som 5.1 a mala túto chybu.


-1 pre odpoveď č. 2

Takto nastavíte premennú relácie:

FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(true);
session.setAttribute("foo", "bar");

Takto môžete získať premenné relácie:

FacesContext facesContext = FacesContext.getCurrentInstance();
HttpSession session = (HttpSession) facesContext.getExternalContext().getSession(false);
Enumeration e = session.getAttributeNames();
while (e.hasMoreElements())
{
String attr = (String)e.nextElement();
System.err.println("      attr  = "+ attr);
Object value = session.getValue(attr);
System.err.println("      value = "+ value);
}

Vašou jedinou úlohou je uložiť stav začiarkavacích políčok do relácie a potom ju načítať.