我正在使用Richfaces 4.5.7.Final,恰好是组件rich:tree
通过使用方法 selectionChanged 恢复全局变量中所选节点的值,但是当我继续从另一个方法显示所选节点的值时,值为空。
为什么会这样?
<rich:tree id="treeCuadroClasificacion"
value="#{cuadroClasificacionBean.raizCuadroClasificacion}"
toggleType="client" selectionType="ajax"
selectionChangeListener="#{cuadroClasificacionBean.selectionChanged}"
var="node">
<rich:treeNode iconExpanded="/resources/images/cuadroClasificacion/#{node.nodo.nombreImagenAsociada}"
iconCollapsed="/resources/images/cuadroClasificacion/#{node.nodo.nombreImagenAsociada}"
iconLeaf="/resources/images/cuadroClasificacion/#{node.nodo.nombreImagenAsociada}"
title="#{node.nodo.nombreNodo}">
<h:outputText value="#{node.nodo.nombreNodo}"
styleClass="titulosNodoNivel1" />
</rich:treeNode>
</rich:tree>
selectionChanged 代码,显示存储在变量 nodoSeleccionado
中的值public void selectionChanged(TreeSelectionChangeEvent selectionChangeEvent) {
RichFacesTreeNodoCC node = null;
List<Object> selection = new ArrayList<Object>(
selectionChangeEvent.getNewSelection());
Object currentSelectionKey = selection.get(0);
UITree tree = (UITree) selectionChangeEvent.getSource();
Object storedKey = tree.getRowKey();
tree.setRowKey(currentSelectionKey);
node = (RichFacesTreeNodoCC) tree.getRowData();
nodoSeleccionado = node;
tree.setRowKey(storedKey);
logger.info("*** NODO SELECCIONADO ***" + nodoSeleccionado);
logger.info("***** NODO SELECCIONADO *****"
+ nodoSeleccionado.getNodo().getIdNodoDescripcionArchivo());
idNodoADescribir = nodoSeleccionado.getNodo()
.getIdNodoDescripcionArchivo();
logger.info("::: ID NODO A DESCRIBIR :::" + idNodoADescribir);
}
另一种方法,其中值为 nodoSeleccionado的空对象
public void irVistaListaDescripcion() throws IOException {
logger.info("==== NODO A ENVIAR ===" + nodoSeleccionado);
logger.info("==== NODO A ENVIAR ===" + nodoSeleccionado);
variableSession.put("nodoSeleccionado", nodoSeleccionado);
//session.setAttribute("idNodoADescribir", idNodoADescribir);
}
log,我们可以看到刷新视图
18:05:13,470 INFO [bo.gob.siahcomibol.kernel.cuadroClasificacion.bean.CuadroClasificacionBean] (default task-26) ::: ingresando cuadro clasificacion :::
18:05:15,751 INFO [bo.gob.siahcomibol.bean.ActionCRUDBase] (default task-32) *** ACTION CRUD BASE ***
18:05:15,751 INFO [bo.gob.siahcomibol.kernel.cuadroClasificacion.bean.CuadroClasificacionBean] (default task-32) ::: ingresando cuadro clasificacion :::
18:05:15,771 INFO [bo.gob.siahcomibol.kernel.cuadroClasificacion.bean.CuadroClasificacionBean] (default task-32) *** NODO SELECCIONADO ***GERENCIA ADMINISTRATIVA FINANCIERA
18:05:15,771 INFO [bo.gob.siahcomibol.kernel.cuadroClasificacion.bean.CuadroClasificacionBean] (default task-32) ***** NODO SELECCIONADO *****124
18:05:15,771 INFO [bo.gob.siahcomibol.kernel.cuadroClasificacion.bean.CuadroClasificacionBean] (default task-32) ::: ID NODO A DESCRIBIR :::124
18:05:26,563 INFO [bo.gob.siahcomibol.bean.ActionCRUDBase] (default task-33) *** ACTION CRUD BASE ***
18:05:26,563 INFO [bo.gob.siahcomibol.kernel.cuadroClasificacion.bean.CuadroClasificacionBean] (default task-33) ::: ingresando cuadro clasificacion :::
18:05:26,563 INFO [bo.gob.siahcomibol.kernel.cuadroClasificacion.bean.CuadroClasificacionBean] (default task-33) ==== NODO A ENVIAR ===null
18:05:26,564 INFO [bo.gob.siahcomibol.kernel.cuadroClasificacion.bean.CuadroClasificacionBean] (default task-33) ==== NODO A ENVIAR ===null