Estou usando richfaces h:inputTextarea, e gostaria que este apacecesse de cordo com um número específico, dependendo da situação, é que estou implemetando um formulário de perguntas e repotas, só que cada formulário tem seu número específico de perguntas, dai não da pra saber de antemão qnts “h:inputTextarea” vou usar, seria ótimo se pudesse usar um “for”, a única maneira q da pra fazer é colocar num richTable mas eu não keria usar, alguém tem alguma sugestão?
O que seria equivalente a um "for" no richFaces?
3 Respostas
Oi Thamila,
Vejo duas alternativas:
1 - Se o JSTL for compatível com o o RichFaces, vc poderia usar o forEach para criar os seus campos.
2 - (a que eu adoraria) Usaria alguma biblioteca javascript (jQuery por exemplo) para criar os campos dinamicamente.
Um exemplo da segunda opção:
<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script type="text/javascript" src="jquery-1.3.2.js.txt"></script>
<script type="text/javascript">
function geraCodigoCampo( id, nome ) {
return '<input type="text" id="' + id + '" name="' + nome +'"/>';
}
function geraCodigoLabel( id, valor ) {
return '<label id="' + id + '"/>' + valor + '</label>';
}
function gerarCampos( quant ) {
var codigo = '';
for ( var i = 0; i < quant; i++ ) {
codigo += geraCodigoLabel( 'idCampo' + i, 'Campo ' + i + ":" ) +
geraCodigoCampo( 'idCampo' + i, 'nomeCampo' + i ) + '<br/>';
}
$( '#campos' ).html( codigo );
}
$( document ).ready( function(){
// gera 5 campos
gerarCampos(5);
// quando clicar no botão btnGerar
$( '#btnGerar' ).click( function(evt){
var quantidade = $( '#campoQuant' )[0].value;
gerarCampos(quantidade);
});
});
</script>
</head>
<body>
<div id="campos"></div>
<br/><br/><br/>
Quantidade: <input type="text" id="campoQuant" /> <input type="button" id="btnGerar" value="Gerar!"/>
</body>
</html>
Não se esqueça de baixar a jquery (www.jquery.com) e colocar no mesmo diretório do arquivo html para poder testar.
[]´s
Já que está usando RichFaces, tambem está utilizando o Ajax4JSF, certo?
Entao, utilize o a4j:repeat. É o “for” desse framework.
Davi do meu jsp é que eu chamo a bean…dai não deu pra testar o que vc passou, Alias eu n conhecia o a4j:repeat, vlw 
Criado 13 de setembro de 2009
Ultima resposta 7 de out. de 2009
Respostas 3
Participantes 3
Alura POO: o que é programação orientada a objetos? Aprenda os conceitos básicos da programação orientada a objetos, como classes, objetos, herança, encapsulamento e polimorfismo, com exemplos.
Casa do Codigo JavaScript Assertivo: Testes e qualidade de codigo em... Por Gabriel Ramos — Casa do Codigo