tabbedPanel - Struts 2

5 respostas
M

Boa tarde.

Estou fazendo um exemplo a partir do Struts 2. Estou tentando apresentar um tabbedPanel usando o theme="ajax". O programa executa, porém as abas não são apresentadas. Alguém poderia me dizer se há alguma configuração em especial a fazer? Estou usando Netbeans, Glassfish 2. O código jsp é mostrado abaixo:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd">

<html>
    <head>
        <s:head theme="ajax" debug="true" />
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Struts 2</title>
    </head>
    <body>
        <div align="center">
            <div>
                Struts 2 - Exemplo com Componentes Ajax
            </div>    
            <s:tabbedPanel id="tabs">
                <s:div id="compra" label="compras" theme="ajax">Compras</s:div>
                <s:div id="venda" label="vendas" theme="ajax">Vendas</s:div>
            </s:tabbedPanel>
        </div>
    </body>
</html>

Grato.

Marcos

5 Respostas

cris.t

Estranho aparentemente parece esta normal, tenho este exemplo abaixo e parece que esta de acordo com o seu:

<s:tabbedPanel id="panel1" theme="ajax" >
   <s:div label="Cadastro" theme="ajax">
    <center>
    <div>
      <table border="2" cellspacing="0" cellpadding="10" bordercolor="blue" background="buttonhighlight" align="center">
        <tr>
          &lt;td&gt;<b>Formulário de Registro</b>&lt;/td&gt;
        &lt;/tr&gt;
        &lt;tr&gt;
           &lt;td&gt;
              &lt;s:form action="insereContato.action" validate="true"&gt;
                    &lt;s:textfield name="contato.pessoa.nome" label="Nome"&gt;&lt;/s:textfield&gt;
                    &lt;s:textfield name="contato.pessoa.sobreNome" label="Sobrenome"&gt;&lt;/s:textfield&gt;
                    &lt;s:textfield name="contato.email" label="Email"&gt;&lt;/s:textfield&gt;
                    &lt;s:textfield name="contato.telefone.ddd"label="DDD"&gt;&lt;/s:textfield&gt;
                    &lt;s:textfield name="contato.telefone.numero" label="Numero"&gt;&lt;/s:textfield&gt;
                    &lt;s:datetimepicker name="contato.pessoa.dataDeNascimento" label="Data de Nascimento" theme="ajax"                                             displayFormat="dd/MM/yyyy" /&gt;
                    &lt;s:submit value="Gravar" notifyTopics="listaContatoTopic" &gt;&lt;/s:submit&gt;
              &lt;/s:form&gt;
          &lt;/td&gt;
     &lt;/tr&gt;
  &lt;/table&gt;
&lt;/div&gt;
&lt;/center&gt;

 &lt;/s:div&gt;
    &lt;s:div label="Lista Contatos" theme="ajax"&gt;
    &lt;center&gt;
      &lt;s:div 
            id="listaContato" 
            href="listaContatos.action" 
            listenTopics="listaContatoTopic" 
            theme="ajax" 
            showLoadingText="true" 
            showErrorTransportText="true"
            errorText="Um erro ocorreu, tente novamente..."
            loadingText="Obtendo lista contatos..."&gt;
      &lt;/s:div&gt;
   
      &lt;s:submit 
            href="removerContato!removeLista.action"  
            value="Limpar Lista"
            notifyTopics="listaContatoTopic"
            theme="ajax"
            align="center"
            showLoadingText="true"
            showErrorTransportText="true"
            errorText="Um erro ocorreu, tente novamente..."
            loadingText="Limpando lista contatos..."
       /&gt;
   &lt;/center&gt;
   &lt;/s:div&gt;
&lt;/s:tabbedPanel&gt;
cris.t

Hum… Tenta colocar o thema ajax no tabbedpane:

&lt;s:tabbedPanel id="tabs" theme="ajax"&gt;
M

Adicionei o código

&lt;s:tabbedPanel id="tabs" theme="ajax"&gt;

mas também não tive sucesso. Aparentemente o código está ok. Este é código html gerado:

&lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
   "http://www.w3.org/TR/html4/loose.dtd"&gt;

&lt;html&gt;
    &lt;head&gt;
        &lt;decorator:head/&gt;
        &lt;link rel="stylesheet" href="/AplicacaoWebComStruts2/struts/xhtml/styles.css" type="text/css"/&gt;
&lt;script type="text/javascript"&gt;
    // Dojo configuration
    djConfig = {
        baseRelativePath: "/AplicacaoWebComStruts2/struts/dojo",
        isDebug: true,
        bindEncoding: "UTF-8",
        debugAtAllCosts: true // not needed, but allows the Venkman debugger to work with the includes
    };
&lt;/script&gt;
&lt;script type="text/javascript"
        src="/AplicacaoWebComStruts2/struts/dojo/dojo.js"&gt;&lt;/script&gt;

&lt;script type="text/javascript"
        src="/AplicacaoWebComStruts2/struts/simple/dojoRequire.js"&gt;&lt;/script&gt;&lt;script type="text/javascript"
        src="/AplicacaoWebComStruts2/struts/ajax/dojoRequire.js"&gt;&lt;/script&gt;
&lt;script type="text/javascript"
        src="/AplicacaoWebComStruts2/struts/CommonFunctions.js"&gt;&lt;/script&gt;

        
        &lt;meta http-equiv="Content-Type" content="text/html; charset=UTF-8"&gt;
        &lt;title&gt;Struts 2&lt;/title&gt;
    &lt;/head&gt;
    &lt;body&gt;
        &lt;div align="center"&gt;

            &lt;div&gt;
                Struts 2 - Exemplo com Componentes Ajax
            &lt;/div&gt;    
            &lt;script type="text/javascript"&gt;
  dojo.require("dojo.widget.TabContainer");
  dojo.require("dojo.widget.LinkPane");
  dojo.require("dojo.widget.ContentPane");
&lt;/script&gt;

&lt;div dojoType="TabContainer"
    id="tabs"    doLayout="false"&gt;
                &lt;div dojoType="struts:BindDiv"
  	id="compra"    label="compras"    showError="true"&gt;
Compras&lt;/div&gt;

                &lt;div dojoType="struts:BindDiv"
  	id="venda"    label="vendas"    showError="true"&gt;
Vendas&lt;/div&gt;

            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/body&gt;
&lt;/html&gt;

A única coisa que consigo visualizar na tela são os textos. Nada de abas. Não sei se o problema está no Glassfish ou no Browser. Não funcionou nem no IE nem no Firefox.
É estranho.

M

Muito bem.

Após uma série de tentativas, percebi que o problema está na versão 2.0.12, a qual estava utilizando. Coloquei a versão 2.0.6 e deu certo. Testei também com a versão 2.0.11, sucesso também.

Até mais.

Marcos.

cris.t

aconteceu isso comigo tambem, só que com timedatepicker, não esta aparecendo, ai depois que vc falou eu mudei para 0 2.0.11 e funcionou

Criado 10 de novembro de 2008
Ultima resposta 11 de nov. de 2008
Respostas 5
Participantes 2