Estoy intentando obtener el nodo seleccionado en un Tree en JSF.
Este es el código de la página:
Código:
<?xml version="1.0" encoding="UTF-8"?> <!-- Document : cagonlaleshe Created on : 31-mar-2009, 20:23:03 Author : Marius --> <jsp:root version="1.2" xmlns:f="http://java.sun.com/jsf/core" xmlns:h="http://java.sun.com/jsf/html" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:ui="http://www.sun.com/web/ui"> <jsp:directive.page contentType="text/html;charset=UTF-8" pageEncoding="UTF-8"/> <f:view> <ui:page id="page1"> <ui:html id="html1"> <ui:head id="head1"> <ui:link id="link1" url="/resources/stylesheet.css"/> </ui:head> <ui:body id="body1" style="-rave-layout: grid"> <ui:form id="form1"> <ui:tree immediate="true" binding="#{cagonlaleshe.tree1}" id="tree1" style="left: 192px; top: 144px; position: absolute" text="Tree"> <ui:treeNode action="#{cagonlaleshe.actionNodo}" id="treeNode1" text="Tree Node 1"> <f:facet name="image"> <ui:image icon="TREE_DOCUMENT" id="image1"/> </f:facet> </ui:treeNode> <ui:treeNode action="#{cagonlaleshe.actionNodo}" id="treeNode2" text="Tree Node 2"> <f:facet name="image"> <ui:image icon="TREE_DOCUMENT" id="image2"/> </f:facet> </ui:treeNode> <ui:treeNode action="#{cagonlaleshe.actionNodo}" id="treeNode3" text="Tree Node 3"> <f:facet name="image"> <ui:image icon="TREE_DOCUMENT" id="image3"/> </f:facet> </ui:treeNode> </ui:tree> </ui:form> </ui:body> </ui:html> </ui:page> </f:view> </jsp:root>
Este el código JAVA:
Código:
El método de las narices getSelected() siempre devuelve null, igual que getCookieSelectedTreeNode(). /* * To change this template, choose Tools | Templates * and open the template in the editor. */ package proyectoelearning; import com.sun.rave.web.ui.appbase.AbstractPageBean; import com.sun.rave.web.ui.component.Tree; import javax.faces.FacesException; /** * <p>Page bean that corresponds to a similarly named JSP page. This * class contains component definitions (and initialization code) for * all components that you have defined on this page, as well as * lifecycle methods and event handlers where you may add behavior * to respond to incoming events.</p> * * @version cagonlaleshe.java * @version Created on 31-mar-2009, 20:23:04 * @author Marius */ public class cagonlaleshe extends AbstractPageBean { // <editor-fold defaultstate="collapsed" desc="Managed Component Definition"> /** * <p>Automatically managed component initialization. <strong>WARNING:</strong> * This method is automatically generated, so any user-specified code inserted * here is subject to being replaced.</p> */ private void _init() throws Exception { } private Tree tree1 = new Tree(); private String p=new String(); public String getP() { return p; } public void setP(String p) { this.p = p; } public void actionNodo() { System.out.println("to dentro"); String pepe=tree1.getCookieSelectedTreeNode(); System.out.println(pepe); } public Tree getTree1() { tree1.setSelected("treeNode1"); return tree1; } public void setTree1(Tree t) { this.tree1 = t; } // </editor-fold> /** * <p>Construct a new Page bean instance.</p> */ public cagonlaleshe() { } /** * <p>Callback method that is called whenever a page is navigated to, * either directly via a URL, or indirectly via page navigation. * Customize this method to acquire resources that will be needed * for event handlers and lifecycle methods, whether or not this * page is performing post back processing.</p> * * <p>Note that, if the current request is a postback, the property * values of the components do <strong>not</strong> represent any * values submitted with this request. Instead, they represent the * property values that were saved for this view when it was rendered.</p> */ @Override public void init() { // Perform initializations inherited from our superclass super.init(); // Perform application initialization that must complete // *before* managed components are initialized // TODO - add your own initialiation code here // <editor-fold defaultstate="collapsed" desc="Managed Component Initialization"> // Initialize automatically managed components // *Note* - this logic should NOT be modified try { _init(); } catch (Exception e) { log("cagonlaleshe Initialization Failure", e); throw e instanceof FacesException ? (FacesException) e: new FacesException(e); } // </editor-fold> // Perform application initialization that must complete // *after* managed components are initialized // TODO - add your own initialization code here } /** * <p>Callback method that is called after the component tree has been * restored, but before any event processing takes place. This method * will <strong>only</strong> be called on a postback request that * is processing a form submit. Customize this method to allocate * resources that will be required in your event handlers.</p> */ @Override public void preprocess() { } /** * <p>Callback method that is called just before rendering takes place. * This method will <strong>only</strong> be called for the page that * will actually be rendered (and not, for example, on a page that * handled a postback and then navigated to a different page). Customize * this method to allocate resources that will be required for rendering * this page.</p> */ @Override public void prerender() { } /** * <p>Callback method that is called after rendering is completed for * this request, if <code>init()</code> was called (regardless of whether * or not this was the page that was actually rendered). Customize this * method to release resources acquired in the <code>init()</code>, * <code>preprocess()</code>, or <code>prerender()</code> methods (or * acquired during execution of an event handler).</p> */ @Override public void destroy() { } }
¿Qué carajo pasa?.