JSF - Submissão de Dados de Tela

4 respostas
Victor_Almeida

Fala Pessoal, mais uma dúvida cruel!

Tenho uma tela desenvolvida com JSF e Rich Faces e preciso submeter os dados para um Managed Bean, até aqui tudo bem!

O problema é que um bloco de informações deve ser enviado antes de toda a requisição, como se fosse um loop de informações, no MB eu crio uma lista de Alternativas. Consegui fazer isso colocando um <h:form> dentro de outro <h:form>, o problema é que quando termino de submeter as alternativas não consigo chamar o método que faz parte do <h:form> maior. Deixa eu mostrar o código da tela pra vocês entenderem melhor:

&lt;rich:tabPanel width="50%"&gt;
     						&lt;rich:tab label="Inclua a Questão!"&gt;
						
						&lt;rich:panel bodyClass="pbody" style=" width : 578px;"&gt;		                
		                &lt;h:form style="width:250%"&gt;
		                
		                //DADOS GERAIS FAZEM PARTE DA REQUISIÇÃO MAIOR    
		                &lt;h:outputText value="Comando da Questão" styleClass="label"&gt;&lt;/h:outputText&gt;<br>
		                &lt;h:inputTextarea value="#{objetiva.questao.comando}" style="height : 82px; width : 494px;"/&gt;<br><br>
		                    
		                &lt;h:outputText value="Texto Complementar? (Não Obrigatório!)" styleClass="label"&gt;&lt;/h:outputText&gt;<br>
		                &lt;h:inputTextarea value="#{objetiva.questao.textoComplementar}" style="height : 81px; width : 496px;"/&gt;<br><br>
		                    
		                    
		                &lt;h:outputText value="Descreva um Assunto Principal" styleClass="label"/&gt;<br>
		                &lt;h:inputText value="#{objetiva.questao.assuntoPrincipal}" style=" width : 500px;"/&gt;<br><br>
		                    
		                &lt;h:outputText value="Alternativa correta" styleClass="label"&gt;&lt;/h:outputText&gt;<br>
		                &lt;h:inputText size="1" value="#{objetiva.questao.alternativaCorreta}"/&gt;<br><br>
		                
		                
		                
		                &lt;rich:panel&gt;
		                &lt;f:facet name="header"&gt;
		                	&lt;h:outputText value=""/&gt;
		                &lt;/f:facet&gt;
                           
                                                //NESTE FORM ENVIO AS INFORMAÇÕES PARA UM MB PARA DEFINIR UMA LISTA DE ALTERNATIVAS
		                &lt;h:form&gt;
		                	&lt;h:outputText value="Alternativas (Mínimo de três Alternativas)" styleClass="label"/&gt;<br>
		                	&lt;h:outputText value="#{alternativa.descricaoAlternativa}" styleClass="label" rendered="#{alternativa.exibirCampos}"/&gt;<br>
		                	&lt;h:inputTextarea value="#{alternativa.alternativa.texto}" style="height : 41px; width : 472px;" rendered="#{alternativa.exibirCampos}"/&gt;<br><br>
		                	&lt;h:commandButton image="/images/proxima.jpg"
										 	 action="#{alternativa.inserirProximaAlternativa}" 
										 	 style="height : 37px; width : 77px;" 
										 	 alt="Inserir Próxima Questão"
										 	 rendered="#{alternativa.exibirCampos}"/&gt;<br>
							&lt;h:outputText value="VOCÊ ATINGIU O MÁXIMO DE ALTERNATIVAS A SEREM INSERIDAS" rendered="#{alternativa.maximoQuestoes}"/&gt;<br>	
							&lt;h:outputText value="CLIQUE NO BOTÃO ABAIXO PARA CONFIRMAR A INCLUSÃO DE QUESTÃO!" rendered="#{alternativa.maximoQuestoes}"/&gt;<br>
		                &lt;/h:form&gt;
		                
		                &lt;/rich:panel&gt;					                    
		                
		                //NÃO CONSIGO CHAMAR ESTE MÉTODO COM ESTE commandButton, acho que que deve ser porque tenho dois forms 
		                &lt;h:commandButton image="/images/proxima.jpg"
										 	 action="#{objetiva.inserirProximaQuestao}" 
										 	 style="height : 37px; width : 77px;" 
										 	 alt="Inserir Próxima Questão"/&gt;								
						
						&lt;h:commandButton image="/images/cadastrar.jpg"
										 action="/pages/paginasIniciais/paginaInicialProfessor.jsf" 
										 style="height : 37px; width : 77px;" 
										 alt="Salvar" /&gt;								
						
						&lt;h:commandButton image="/images/visualizar.jpg"
										 action="/pages/professor/incluirQuestoes/Objetiva/visualizarDadosInseridos.jsf" 
										 style="width : 77px; height : 42px;" 
										 alt="Visualizar Dados Inseridos" /&gt;
		                &lt;/h:form&gt;//ESTE É O FIM DO FORM PARA TODA A REQUISIÇÃO
//ACHO QUE NÃO POSSO COLOCAR FORM DENTRO DE FORM  E POR ISSO NO FIM NÃO CONSIGO CHAMAR O MÉTODO QUE DESEJO
		                
		                
		            &lt;/rich:panel&gt;
		            &lt;/rich:tab&gt; 
		            &lt;/rich:tabPanel&gt;

O QUE TENHO QUE FAZER PRA SUBMETER TUDO? DEPOIS QUE TIVER CRIADO A LISTA DE ALTERNATIVAS!

4 Respostas

dev.rafael

Afinal, qual o problema em enviar todas as informações de uma só vez e realizar a tarefa de definir uma
lista de alternativas antes de processar o resto da requisição.

Victor_Almeida

dev.rafael:
Afinal, qual o problema em enviar todas as informações de uma só vez e realizar a tarefa de definir uma
lista de alternativas antes de processar o resto da requisição.

Não tô querendo inserir cinco <h:inputTextArea>, um para cada alternativa, mas simplesmente abrir uma outra janela em que possa inserir as alternativas sem precisar sair da pagina de inclusão de questões

dev.rafael

Eu vou precisar de uma descrição mais detalhada do problema pq eu ainda não entendi o que vc quer fazer.

Victor_Almeida

É o seguinte!

Imagina uma tela com alguns inputs, nesta tela quero ter um botão ou link que ao clicar abre uma janela pra que eu possa inserir dados e submetê-los sem que a outra tela seja perdida. entendeu?

Um componente posso usar pra abrir uma janela a parte, incluir dados, submetê-los e depois voltar pra janela anterior sem perder as informações já digitadas?

Clareou?

Criado 6 de agosto de 2010
Ultima resposta 9 de ago. de 2010
Respostas 4
Participantes 2