[quote=boneazul][quote=Ataxexe][quote=boneazul]“O código de exemplo na demo do detail table não me pareceu ser o que aparece na demo. Se for, ficou com um aspecto de muita mágica num componente visual”
R:. É assim mesmo facil do jeito que está , Rich Internet Application , assim como todos os outros componentes , nem tem muita magica esse componente , é o objeto que trata listas em formulários, ou seja , o famoso “nomedocampo[]” , em que muita gente , principalmente iniciante quebra a cabeça pra resolver .
Essa é outra vantagem de se usar uma abstração para fazer algo , não precisa se ater a detalhes de como funciona ou como faz , assim como eu acho magica o que hibernate,vraptor,engine de jogos ou qualquer outro framework ótimos realizam . São algumas perguntas simples que devem ser feitas antes de adotar : É facil de usar ? Tem boa documentação ? Roda bem não importando o ambiente ? Se as respostas são sim , não me agrega no momento saber como funciona , pois outra pessoa ja quebrou a cabeça por mim de como fazer , só sei que roda bem , escala e atende bem o que preciso. O mesmo princípio vale pra tudo qualquer outra ferramente , seja software ou não , saber como o telefone funciona por dentro e como faz a magica , ou como o microondas esquenta e como faz a magica não é interessante , voce sabe que disca e consegue falar e ouvir outra pessoa do outro lado da linha , ou que voce coloca o tempo e a comida esquenta.
[/quote]
Me referia aos botões de remover e submeter o formulário. Acho completamente estranho não ter referência alguma de onde ele vai executar as coisas.[/quote]
Bom acho que não entendi direito seu questionamento nessa parte , mas vamos lá. Abaixo segue o fonte que voce viu :
<html:form action="/sua/url/que/trata/os/dados" label="Tabela detalhe">
<html:detailTable id="pessoas" label="Pessoas listadas" list="${pessoaList}"
var="pessoa">
<html:detailTableColumn label="Nome da pessoa">
<html:input help="oi" name="pessoas[].nome" size="20" value="${pessoa.nome}"/>
</html:detailTableColumn>
<html:detailTableColumn label="Data de nascimento" mandatory="true">
<html:input name="pessoas[].dataNascimento" mask="99/99/9999" value="${pessoa.dataNascimento}"/>
</html:detailTableColumn>
<html:detailTableColumn label="Salário" mandatory="true">
<html:input name="pessoas[].salario" moneyMask="true" value="1000" size="6"/>
</html:detailTableColumn>
<html:detailTableColumn label="Gosta de chocolate" mandatory="true">
<html:input type="checkbox" name="pessoas[].gostaChocolate" value="S"
checked="${pessoa.gostaChocolate}"/>
</html:detailTableColumn>
<html:detailTableHidden name="pessoas[].id" value="${pessoa.id}"></html:detailTableHidden>
</html:detailTable>
</html:form>
Na primeira linha action="/sua/url/que/trata/os/dados":
<html:form action="/sua/url/que/trata/os/dados"...
voce fala que url trata os dados depois da submissao , no mais é tudo em tempo de pagina , e nao ha dados trafegando , é tudo javascript , simples .
Entao no seu vraptor,spring,servlet,struts ou sei la o que voce vai ter disponivel depois da submissao no request os campos com os names em forma de lista que voce mesmo definiu, isso é padrao , serve pra php , jsp , etc ,
Entao pro exemplo acima vamos supor que voce preencha 3 linhas da tabela detalhe , na sua url ou metodo que trata os dados voce vai ter disponivel no request.
pessoas[0].nome = dadolinha1
pessoas[0].dataNascimento = dadolinha1
pessoas[0].salario = dadolinha1
pessoas[0].gostaChocolate = dadolinha1
pessoas[1].nome = dadolinha2
pessoas[1].dataNascimento = dadolinha2
pessoas[1].salario = dadolinha2
pessoas[1].gostaChocolate = dadolinha2
pessoas[2].nome = dadolinha3
pessoas[2].dataNascimento = dadolinha3
pessoas[2].salario = dadolinha3
pessoas[2].gostaChocolate = dadolinha3
esse indice o proprio objeto que preenche pra voce na sequencia entao ja chega pronto pra voce utilizar, vou adicionar na documentação um exemplo tambem do código java que recebe os dados em cada framework para melhorar o entendimento do objeto e como os dados chegam , talvez seja isso sua dúvida e ja sana a duvida de outros também.
ja aproveitando o gancho se fosse vraptor por exemplo e sua convencao voce faria :
@Resource
public class PessoaController{
//Voce definiu na action de seu form
@Path("/sua/url/que/trata/os/dados")
public void trataLista(List><Pessoa> /*Voce definiu no name do objeto*/pessoas){
for(Pessoa pessoa:pessoas){
System.out.println(pessoa.getNome());
}
}
}
Simples assim.
[/quote]
Não era bem isso que eu estava me referindo…bom…deixa pra lá…
Sucesso com sua taglib :thumbup: