jscookMenu do TomaHawk

6 respostas
E

Oi,

Eu estou quase um dia todo fazendo que os links do meu menu gerado pelo jscookMenu do TomaHawk funcione. Já não sei mais o que fazer. Alguem pode me dar uma luz?

OBS: O menu é criado, mas parece que os actions não funcionam.

Obrigado,
Claudio Escudero

O meu arquivo de faces-config.xml

<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">

<faces-config>

	<navigation-rule>
		<from-view-id>*</from-view-id>
		
		<navigation-case>
			<from-outcome>success</from-outcome>
			<to-view-id>/main.html</to-view-id>
			<redirect/>
		</navigation-case>

		<navigation-case>
			<from-outcome>go_primeiroNivel</from-outcome>
			<to-view-id>/primeiroNivel.jsf</to-view-id>
			<redirect/>
		</navigation-case>
		
		<navigation-case>
			<from-outcome>go_segundoNivel</from-outcome>
			<to-view-id>/segundoNivel.jsp</to-view-id>
			<redirect/>
		</navigation-case>
		
	</navigation-rule>

	<managed-bean>
		<managed-bean-name>usuario</managed-bean-name>
		<managed-bean-class>com.afc.model.Usuario</managed-bean-class>
		<managed-bean-scope>session</managed-bean-scope>
	</managed-bean>
	
</faces-config>

O meu arquivo de main.jsp

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>

<html>
<body>
<f:view>
	<h:form>
		<t:jscookMenu layout="hbr" theme="ThemeIE" >
			<t:navigationMenuItem itemLabel="Arquivo">
				<t:navigationMenuItem itemLabel="Serviço" action="go_primeiroNivel" icon="/imagens/icon.gif" />
				<t:navigationMenuItem itemLabel="Funcionário" action="go_segundoNivel" icon="/imagens/icon.gif" />
				<t:navigationMenuItem itemLabel="Alocar Funcionário" action="go_primeiroNivel" split="true" icon="/imagens/icon.gif" />
			</t:navigationMenuItem>
			<t:navigationMenuItem itemLabel="Ajuda" action="go_primeiroNivel"  />
		</t:jscookMenu>
	</h:form>
</f:view>
</body>
</html>

6 Respostas

toninho

Olá,

tente colocar a tag o jscookMenu do lado de fora da tag form. Dessa forma:

<html>
 <body>
 <f:view>
      <t:jscookMenu layout="hbr" theme="ThemeIE" >
 		<t:navigationMenuItem itemLabel="Arquivo">
 			<t:navigationMenuItem itemLabel="Serviço" action="go_primeiroNivel" icon="/imagens/icon.gif" />
 			<t:navigationMenuItem itemLabel="Funcionário" action="go_segundoNivel" icon="/imagens/icon.gif" />
			<t:navigationMenuItem itemLabel="Alocar Funcionário" action="go_primeiroNivel" split="true" icon="/imagens/icon.gif" />
		</t:navigationMenuItem>
		<t:navigationMenuItem itemLabel="Ajuda" action="go_primeiroNivel"  />
	</t:jscookMenu>

 	<h:form>
 		
 	</h:form>
 </f:view>
 </body>
 </html>

inté,

E

Oi,
Acabei de testar aqui.
Mas não deu certo e ocorreu um outro problema com esse esquema.
O menu ficou meio q bagunçado e além de continuar não funcionando os links.

=/

Valeus

xgucax

E aí cara, tudo bom?
Tenta fazer o seguinte, coloca este campo no mesmo form definido para o jscookmenu (de preferência logo acima do mesmo):

&lt;input type="hidden" name="jscook_action" /&gt;

Boa sorte
Abraços

E

Opa, Deu certo

Obrigadão pela ajuda de vc´s ai.

Funcionou, mais eu não sei pq ele funcionou dessa maneira e não como estava antes.

Estou enviando o codigo do arquivo JSP correto aqui para ver como que ficou caso alguem queira ver o resultado final.

<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
 <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
 <%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t" %>
 
 <html>
 <body>
 <f:view>
 	<h:form>
 		<input type="hidden" name="jscook_action" />
 		<t:jscookMenu layout="hbr" theme="ThemeIE" >
 			<t:navigationMenuItem itemLabel="Arquivo">
 				<t:navigationMenuItem itemLabel="Serviço" action="go_primeiroNivel" icon="/imagens/icon.gif" />
 				<t:navigationMenuItem itemLabel="Funcionário" action="go_segundoNivel" icon="/imagens/icon.gif" />
 				<t:navigationMenuItem itemLabel="Alocar Funcionário" action="go_primeiroNivel" split="true" icon="/imagens/icon.gif" />
 			</t:navigationMenuItem>
 			<t:navigationMenuItem itemLabel="Ajuda" action="go_primeiroNivel"  />
 		</t:jscookMenu>
 	</h:form>
 </f:view>
 </body>
 </html>

Valeuz

xgucax

Cara, eu estava tendo o mesmo problema. Consultando a página wiki do menu, vi que ele indica a adição desse campo oculto (vulgo gambiarra) para as aplicações que usam o JSF 1.2. A minha não era a 1.2, então resolvi depurar o Javascript desse menu.
Depurando, vi que (auxilidade pleo console javascript do Mozilla) o código utilizava DOM para poder acessar este campo. Daí vi que era necessário ele estar definido, e deu certo!
Espero ter ajudado
abraços

J

Galera,
meu exemplo não funciona. O menu aparece com as opções, mas ao clicar em qualquer uma, nada acontece. O servidor não dispara a página correta. A própria página welcomeJSF.jsp é retornada.
Alguém poderia me ajudar?
Seguem abaixo os códigos...

Obrigado,
Jefferson

Meu JSP:

<%@page contentType="text/html"%>
<%@page pageEncoding="UTF-8"%>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<%@ taglib uri="http://myfaces.apache.org/tomahawk" prefix="t"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<f:view>
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
            <title>JSP Page</title>
        </head>
        <body>
            <h:form>
                <input type="hidden" name="jscook_action" />
                <h1><h:outputText value="JavaServer Faces" /></h1>

                <t:jscookMenu layout="hbr" theme="ThemeOffice">
                    <t:navigationMenuItems id="navitems" value="#{dynamicMenu.navItems}" />
                </t:jscookMenu>

            </h:form>
        </body>
    </html>
</f:view>

meu bean:

public class DynamicMenu {
    private ArrayList navItems;
    protected static Logger logger = Logger.getLogger(DynamicMenu.class);

    public DynamicMenu() {
        logger.info("DynamicMenu...");
        NavigationMenuItem[] subItems = new NavigationMenuItem[3];
        subItems[0] = new NavigationMenuItem("Manter usuários","manter_usuario");
        subItems[1] = new NavigationMenuItem("Gerar senha","gerar_senha");
        subItems[2] =  new NavigationMenuItem("Trocar Senha","trocar_senha");


        NavigationMenuItem itemWithChildren = getMenuNavigationItem("Admin", null);
        itemWithChildren.setNavigationMenuItems(subItems);

        navItems = new ArrayList();
        navItems.add(itemWithChildren);
    }

    public ArrayList getNavItems() {
        return navItems;
    }

    public void setNavItems(ArrayList navItems) {
        this.navItems = navItems;
    }
faces-config:
<?xml version="1.0"?>
<!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">

<faces-config>  
    <navinavigation-rule>
        <from-view-id>*</from-view-id>
        <navigation-case>
            <from-outcome>manter_usuario</from-outcome>
            <to-view-id>/jsf-pages/ManterUsuarios.jsp</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-outcome>gerar_senha</from-outcome>
            <to-view-id>/jsf-pages/GerarSenha.jsp</to-view-id>
            <redirect/>
        </navigation-case>
        <navigation-case>
            <from-outcome>trocar_senha</from-outcome>
            <to-view-id>/TrocarSenha.jsp</to-view-id>
            <redirect/>
        </navigation-case>
    </navinavigation-rule>
    <managed-bean>
        <managed-bean-name>dynamicMenu</managed-bean-name>
        <managed-bean-class>menu.DynamicMenu</managed-bean-class>
        <managed-bean-scope>application</managed-bean-scope>
    </managed-bean>
</faces-config>
Criado 3 de janeiro de 2007
Ultima resposta 4 de jul. de 2009
Respostas 6
Participantes 4