Pessoal, estou tentando utilizar o modelPanel do RichFaces…
Quando o modelPanel está aberto, criei um botão que vai apenas alterar o valor de um atributo e vai redirecionar para a mesma tela. Ai surge a bronca:
quando eu no meu redireciono pra mesma página, no caso o login.xhtml, o modal some… é como se ele estivesse dando um refresh
na página sei lá…
utilizo no meu form o <a4j:form ajaxSubmit=“true”> e no botão é um a4j:commandButtin .
Alguém pode me dizer se está faltando algo??? Ele seta o atributo mas queria que a janela continuasse aberta
Trecho do meu faces-config:
<navigation-rule>
<from-view-id>/paginas/login/login.xhtml</from-view-id>
<navigation-case>sucesso</navigation-case>
<to-view-id>/paginas/login/login.xhtml</to-view-id>
</navigation-rule>
Trecho da minha página
<?xml version="1.0" encoding="ISO-8859-1"?>
<!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"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="https://ajax4jsf.dev.java.net/ajax"
xmlns:t="http://myfaces.apache.org/tomahawk"
xmlns:c="http://java.sun.com/jstl/core"
xmlns:rich="http://richfaces.ajax4jsf.org/rich">
<body>
<f:view>
<h:outputText value="Seja bem-vindo(a) #{logado}" styleClass="accept"/>
<a href="javascript:Richfaces.showModalPanel('inserirProva',{heigth:600 ,width:900, top:25})">Cadastrar</a>
<rich:modalPanel id="inserirProva" minHeigth="200" minWidth="450" height="600" width="900" zindex="2000" showWhenRendered="true" keepVisualState="true">
<f:facet name="header">
<h:outputText value="Cadastrar Prova" />
</f:facet>
<f:facet name="controls">
<h:graphicImage value="/images/modal/close.png" onclick="Richfaces.hideModalPanel('inserirProva')" />
</f:facet>
<a4j:form ajaxSubmit="true" reRender="teste">
<table width="100%" border="1">
<tr>
<td>Tipo de Prova :
<h:selectOneMenu id="tipos" value="#{prova.tipoQuestao}">
<f:selectItems value="#{prova.tipos}"/>
</h:selectOneMenu>
<h:outputText id="teste" value="#{prova.teste}"/>
</td>
</tr>
<tr>
<td>
<a4j:commandButton value="Atualizar Lista" action="#{prova.atualiza}"/>
</td>
</tr>
</table>
</a4j:form>
</rich:modalPanel>
</f:view>
</body>
</html>
Ele funciona beleza, o problema é que a modalPanel some.
Valeu []´s
Bem… perguntei num fórum que achei la no site da JBoss e me ajudaram …
Existem algumas coisas erradas ai tipo:
Na minha classe, criei um método que irá alterar o valor do método.
Só que este método, estava retornando uma String ( como normalmente em JSF ) só que no caso do uso de
Ajax, esse método não irá retornar nada… apenas alterar o valor. Meu form e meu botão ficaram assim:
<h:form>
<a4j:commandButton value="Alterar" action="minhaAction.action" reRender="valor">
</h:form>
E no meu método apenas alterei o valor que eu queria! =)
Valeu !! []´s
Akila
Junho 27, 2008, 7:44am
#2
Cara, estou tendo um problema com o modelPanel tb. Mas o meu problema é o seguinte. Eu tenho já um forme na minha página e gostaria de inserir dentro deste form um modal panel para fazer um outro submit com alguns valores. Fiz tudo ok, e li na referencia do rich faces que quando usamos um modalPanel temos de criar um form dentro dele, até ai tudo bem. Porem, quando eu faço o submit do modalPanel ele não altera o valor do meu MB. não sei o motivo disso.