[Resolvido]Limpar campos de login jsf e primefaces apos fazer o login

Boas colegas. Estou com um pequeno bug no formulario do login, então sempre que clico para abrir a janela de login ele aperece com os campos já preenchido tentei usar o parametro update mas não deu lá muito certo. Peço a vossa ajuda em baixo deixo a imagem quando clico para abrir o dialog e codigo da 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">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
	xmlns:h="http://java.sun.com/jsf/html"
	xmlns:f="http://java.sun.com/jsf/core"
	xmlns:p="http://primefaces.org/ui"
	xmlns:ui="http://java.sun.com/jsf/facelets"
	template="/templates/layoutLogin.xhtml">

	<ui:define name="cabecalho">
		<h:form>
			<p:menubar style="border:none;">

				<p:menuitem icon="ui-icon-home" value="Visitar UCM"
					url="https://www.ucm.ac.mz" target="_black" />

				<p:menuitem value="Iniciar sessão" icon="ui-icon-person" action="#{MBLoginBean.prepararLogin}"
					 update=":frmLogin:pnLogin" oncomplete="PF('dlgLogin').show();" />

			</p:menubar>

		</h:form>


		<p:dialog widgetVar="dlgLogin" modal="true" appendTo="@(body)"
			closable="true" resizable="false" draggable="false" header="Login">
			<h:form id="frmLogin">
				<h:panelGrid id="pnLogin" columns="2" cellpadding="8">
					<h:outputLabel value="Usuário " />
					<h:inputText value="#{MBLoginBean.usuario.usuario}" placeholder="Nome de usuário"  />

					<h:outputLabel value="Senha " />
					<h:inputSecret value="#{MBLoginBean.usuario.senha}" />
				</h:panelGrid>

				<h:panelGrid columns="2" cellpadding="8">
					<p:commandButton value="Entrar" action="#{MBLoginBean.login}"/>
						
					
					<p:commandButton value="Cancelar" onclick="PF('dlgLogin').hide();" />

				</h:panelGrid>
			</h:form>
		</p:dialog>


	</ui:define>

pode ser cache do navegador, cache do servidor ou as variáveis #{MBLoginBean.usuario.senha} e #{MBLoginBean.usuario.usuario} estão com algum valor.

Limpa o cache como o @Ofidomundo disse, que ai os campos não vão vir preenchidos.

Caso queira tirar o autocomplete do campo, só setar o atributo autocomplete para off

<p:inputText ... autocomplete="off"/>

Bem depois de fazer um teste com o navegador chrome os campos do form de login não vêm preenchidos, mas quando corro no opera os campos já vêm preenchido.

Já limpei o cache do navegador e nada, como posso limpar o cache do servidor (Apache tomcat)? As váriaveis acredito que não tenha nenhum valor já que vai buscar da base de dados consoante o que for posto nos inputs.

Tentei desativar esse parametro e nada, no opera continua.

Apaga os arquivos .java e .class do diretório tomcat/work/Catalina/ ou algo assim Directory]\work\Catalina\localhost\webapps_myApplication

1 curtida

isso acontece pois o seu preenchimento automático no ópera esta ligado, talvez tente rodar em “modo anonimo” ou desligue o preenchimento!

2 curtidas

Sim…

Os inputs ficam amarelos pq em algum momento, o Google Chrome perguntou se ele queria salvar o usuário e senha e ele disse que sim.

2 curtidas

Sim realmente em modo privado deixa de aparecer

1 curtida

Não encontrei esse directorio

então não tem cache.

e se no opera acontece, como eu disse antes, você precisa apagar os dados de preenchimento automatico, no opera eu não sei como apaga mas acredito que uma simples consulta no google ja te ajude!.

Apagar todo o histórico resolve kk

1 curtida

Tenta colocar:

“MBLoginBean.seUsuario(null);”

após submeter no seu Bean, senão na sua classe de DAO.

Abraço e fica com Deus!

Primeiro desactivei o preenchimento automatico e depois limpei tudo… Resolveu