Fala pessoal,
seguinte, estou começando agora na área de programação Java / JSP / JSF e afins. Não estou sozinho no projeto, e por isso estou tendo que “correr atrás do prejuízo”. rs
Porém, as pessoas que entendiam do assunto (JSF / Facelets) fizeram algumas partes do site e sairam do proejto. Assim, tenho que resolver (urgente) alguns problemas, mas não estou conseguindo.
A plataforma de trabalho é, basicamente:
Tomcat6 + JDK6u11 + JSF + Facelets
(acho que é isso)
Vamos ao problema.
Tenho no site um link “cadastre-se”. Estando numa página “x.xhtml” (x.jsf), quando o usuário clica nesse link é chamada a página “1.jsf”, que abre sobre a página x.jsf (visualmente falando é como se fosse uma DIV). Esta página 1.jsf contém apenas um <a4j:keepAlive /> para o bean do registro e um <a4j:include viewId="" />, que chama a página “2.jsf”, com o conteúdo do formulário que aparecerá para o usuário.
Neste formulário existe um botão CANCELAR, que deveria fechar a “div”, e voltar a mostrar apenas a página x.jsf.
Para fazer isso, é utilizado o seguinte “método”:
No arquivo frame.xhtml (frame básico para as outras páginas), existe o seguinte:
<c:if test="#{regMB.status!='closed'}">
<div id="registerOpen">
<h:form id="register">
<a4j:include viewId="../1.xhtml" />
</h:form>
</div>
</c:if>
Ou seja, para ativar a janela de cadastro, basta eu mudar o status do Managed Bean “regMB” de closed para open.
E, teoricamente, para fechar tal janela, bastaria eu mudar o status do regMB para closed novamente.
Porém o meu botão Cancelar que deveria fazer isso não consegue fazer, e a partir desse momento a janela de cadastro fica aberta sobre todas as outras páginas do site.
o botão cancelar está da seguinte maneira:
<a4j:commandButton action="#{regMB.close}" onclick="controlaCamada('registerOpen')" image="images/cadastro/cancelar_red.gif" id="cancel"/>
Aquele código no “onclick” é só um javascript que seta o valor do style.visibility da div como hidden, mas ele oculta e logo em seguida, automaticamente, volta a aparecer.
o método regMB.close é só um “setter” do status para “closed”.
Alguém tem alguma idéia do que possa estar ocorrendo? Se precisarem posso postar mais código, sei lá… rs…
Agradeço de ante-mão qualquer ajuda!!! =)
Abraços,
Diego