Problema com Richfaces 4 e panelMenu

0 respostas
F

E ai galera , blz

Eu estou tentando usar o exemplo do richfaces 4 do site da Jboss, o panelMenu, segue link abaixo:
[url]http://richfaces-showcase.appspot.com/richfaces/component-sample.jsf?demo=panelMenu&skin=blueSky[/url]

Porém, está dando um erro na minha aplicação, ele exibe a seguinte mensagem na pagina xhtml

?The button/link/text component needs to have a Form in its ancestry. Please add <h:form>.

Já tentei mudar a localização do meu , mas ainda sim continua dando a mensagem, onde q eu tenho q colocar isso no codigo?

menu.xhtml
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
                xmlns:h="http://java.sun.com/jsf/html"
                xmlns:f="http://java.sun.com/jsf/core"
                xmlns:ui="http://java.sun.com/jsf/facelets"
                xmlns:a4j="http://richfaces.org/a4j"
                xmlns:rich="http://richfaces.org/rich">
    <h:head></h:head>
    <h:body>
        
        <h:form id="form">
            <h:panelGrid columns="2" columnClasses="cols,cols" width="400">
                <rich:panelMenu style="width:200px" itemMode="ajax" groupMode="ajax"
                                groupExpandedLeftIcon="triangleUp"
                                groupCollapsedLeftIcon="triangleDown"
                                topGroupExpandedRightIcon="chevronUp"
                                topGroupCollapsedRightIcon="chevronDown" itemLeftIcon="disc"
                                itemChangeListener="#{panelMenuBean.updateCurrent}">
                    <rich:panelMenuGroup label="Group 1">
                        <rich:panelMenuItem label="Item 1.1" name="Item_1_1" />
                        <rich:panelMenuItem label="Item 1.2" name="Item_1_2" />
                        <rich:panelMenuItem label="Item 1.3" name="Item_1_3" />
                    </rich:panelMenuGroup>
                    <rich:panelMenuGroup label="Group 2">
                        <rich:panelMenuItem label="Item 2.1" name="Item_2_1" />
                        <rich:panelMenuItem label="Item 2.2" name="Item_2_2" />
                        <rich:panelMenuItem label="Item 2.3" name="Item_2_3" />
                        <rich:panelMenuGroup label="Group 2.4">
                            <rich:panelMenuItem label="Item 2.4.1" name="Item_2_4_1" />
                            <rich:panelMenuItem label="Item 2.4.2" name="Item_2_4_2" />
                            <rich:panelMenuItem label="Item 2.4.3" name="Item_2_4_3" />
                        </rich:panelMenuGroup>
                        <rich:panelMenuItem label="Item 2.5" name="Item_2_5" />
                    </rich:panelMenuGroup>
                    <rich:panelMenuGroup label="Group 3">
                        <rich:panelMenuItem label="Item 3.1" name="Item_3_1" />
                        <rich:panelMenuItem label="Item 3.2" name="Item_3_2" />
                        <rich:panelMenuItem label="Item 3.3" name="Item_3_3" />
                    </rich:panelMenuGroup>
                </rich:panelMenu>
                <a4j:outputPanel ajaxRendered="true">
                    <rich:panel rendered="#{not empty panelMenuBean.current}">
                        <h:outputText value="#{panelMenuBean.current} selected"
                                      id="current" />
                    </rich:panel>
                </a4j:outputPanel>
            </h:panelGrid>
        </h:form>
    </h:body>
</html>

PanelMenuBean.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package br.salesianos.efeito;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;

import org.richfaces.event.ItemChangeEvent;

@ManagedBean
@RequestScoped
public class PanelMenuBean {
    private String current;
    private boolean singleMode;

    public boolean isSingleMode() {
        return singleMode;
    }

    public void setSingleMode(boolean singleMode) {
        this.singleMode = singleMode;
    }

    public String getCurrent() {
        return this.current;
    }

    public void setCurrent(String current) {
        this.current = current;
    }

    public void updateCurrent(ItemChangeEvent event) {
        setCurrent(event.getNewItemName());
    }
}
Criado 25 de abril de 2011
Respostas 0
Participantes 1