O que seria equivalente a um "for" no richFaces?

3 respostas
Thamila

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?

3 Respostas

davidbuzatto

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

alias

Já que está usando RichFaces, tambem está utilizando o Ajax4JSF, certo?

Entao, utilize o a4j:repeat. É o “for” desse framework.

Thamila

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 :wink:

Criado 13 de setembro de 2009
Ultima resposta 7 de out. de 2009
Respostas 3
Participantes 3