Boa noite, pessoal!
Eu consegui resovler o problema mas devido a alguns contra-tempos nao pude postar imediatamente a soluaço. O problema que eu enfrentava estava no fato do browser fire-fox setar o login e a senha do ADMINISTRADOR quando este iria criar um novo usuario no sistema. Para resolver o problema utilizei um atributo do proprio componente chamado autocomplete este atributo deve ser setado para off, pois este valor setado no atributo impede que o browser preencha automaticamente os campos senha e login do novo usuario a ser criado com o login e a senha do ADMINISTRADOR assim que o mesmo entre na tela de cadastro. Abaixo mostro como fora feito.
Tela new onde o problema ocorria, mas como ja disse o mesmo encontra-se resolvido.
<ui:composition template="/WEB-INF/template/usuario_list_template.xhtml">
<ui:define name="titulo">#{prompt.usuario}</ui:define>
<ui:define name="descricao">#{prompt.usuario_Incluir}</ui:define>
<ui:define name="mensagemSistema" />
<ui:define name="corpo">
<a4j:keepAlive beanName="usuarioActions" />
<h:form id="formUsuarioNew" >
<rich:panel>
<f:facet name="header">
<h:outputText value="#{prompt.usuario}" />
</f:facet>
<h:panelGrid columns="3">
<h:panelGroup>
<h:outputText value="#{prompt.usuario_nome}" />:
</h:panelGroup>
<h:inputText id="nome" value="#{usuarioActions.usuarioCorrente.nome}"
maxlength="#{constantes.lUsuarioNome}" size="20" required="true"/>
<h:message for="nome" styleClass="error" />
<h:panelGroup>
<h:outputText value="#{prompt.login}" />:
</h:panelGroup>
<h:inputText id="login" value="#{usuarioActions.usuarioCorrente.login}"
maxlength="#{constantes.lUsuarioLogin}" size="20" autocomplete="off" required="true" />
<h:message for="login" styleClass="error" />
<h:panelGroup>
<h:outputText value="#{prompt.senha}" />:
</h:panelGroup>
<h:inputSecret id="senha" value="#{usuarioActions.usuarioCorrente.senha}"
maxlength="#{constantes.lUsuarioSenha}" size="20" autocomplete="off" required="true" />
<h:message for="senha" styleClass="error" warnClass="warn" />
<h:panelGroup>
<h:outputText value="#{prompt.usuario_confirmacaosenha}" />:
</h:panelGroup>
<h:inputSecret id="senhaConfirm" value="#{usuarioActions.confirmacaoSenha}"
size="20" required="true">
</h:inputSecret>
<h:message for="senhaConfirm" styleClass="error" warnClass="warn" />
<h:panelGroup>
<h:outputText value="#{prompt.usuario_tipo}" />
</h:panelGroup>
<h:selectOneMenu value="#{usuarioActions.comboTiposUsuario.selecao}">
<f:selectItems value="#{usuarioActions.comboTiposUsuario.listaSelecao}"/>
</h:selectOneMenu>
</h:panelGrid>
</rich:panel>
<br />
<br />
<h:commandButton id="botaoIncluir" value="#{prompt.confirmarInclusao}"
action="#{usuarioActions.inclui}" />
<h:commandButton id="botaoCancelar" value="#{prompt.cancelar}"
action="#{usuarioActions.cancelar}" immediate="true" />
</h:form>
</ui:define>
</ui:composition>
Boa tarde, pessoal!
Estou desenvolvendo uma aplicaçao onde tenho tipos de usuarios e um deles é o administrador que tem o recurso de criar usuarios, este projeto é web mas o administrador cria os logins para os seus alunos que no caso tambem sao usuarios , acontece que quando eu mando o firefox armazenar a senha e o login para o ADMINISTRADOR quando o mesmo se loga no sistema para nao ter que toda vez que entrar no sistema ter que digitar a senha e o login deste administrador tudo ocorre normalmente, mas quando o administrador precisa criar um login para o seu aluno as caixas login e senha aparecem setadas com o login e senha do administrador, logo o que eu gostaria era fazer com que estas caixas de login e senha aparecessem em branco ou seja vazias para o administrador nao ter que apagar os campos e pedir para o usuario ter que digitar. Espero ter sido claro na minha duvida. Mesmo que eu coloque nos atributos do beans login="" e senha="" nao adiante quando caio na tela de criaçao do usuario aparecem os campos login e senha setados com os dados do administrador. Se alguem puder me ajudar ficaria grato. Abaixo estou postando o meu bean e a tela onde crio o usuario. Desde ja o meu muito obrigado!
Ususario
@Entity
@Table(name=“Usuario”)
@SequenceGenerator(name=“SEQUENCIA”, sequenceName=“SEQ_USUARIO”, allocationSize=1)
public class Usuario implements Serializable {
private static final long serialVersionUID = 1L;
public Usuario() {
}
/**
* Identificador do usuário.
*
*/
private Long id;
/**
* Nome do usuário.
*
*/
private String nome;
/**
* Login do usuario
*
*/
private String login;
/**
* Senha do usuário.
*
*/
private String senha;
/**
* Atributo que indica o tipo do usuário.
*
*/
private TipoUsuario tipoUsuario;
/**
* Atributo que contém a lista de planos para um determinado usuário.
*
*/
private List<CadPlan> planos;
@Id
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="SEQUENCIA")
@Column(name="ID")
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getLogin() {
return login;
}
public void setLogin(String login) {
this.login = login;
}
public String getSenha() {
return senha;
}
public void setSenha(String senha) {
this.senha = senha;
}
@ManyToOne
@JoinColumn(name="TIPO_USUARIO_ID", nullable=false)
public TipoUsuario getTipoUsuario() {
return tipoUsuario;
}
public void setTipoUsuario(TipoUsuario tipoUsuario) {
this.tipoUsuario = tipoUsuario;
}
@OneToMany(mappedBy="usuario", cascade=CascadeType.REMOVE)
public List<CadPlan> getPlanos() {
return planos;
}
public void setPlanos(List<CadPlan> planos) {
this.planos = planos;
}
/**
* Este método poder ser gerado AUTOMATICAMENTE pelo Java, juntamente com o método "equals(Object obj)".
* Eles São necessários para determinarmos um criterio de igualdade entre 2 objetos.
*
* Obs.: É primoridal dar atenção para este detalhe, principalmente quando trabalhamos com Estruturas
* de Dados como Set.
*
* @return int
*/
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + ((id == null) ? 0 : id.hashCode());
result = prime * result + ((login == null) ? 0 : login.hashCode());
result = prime * result + ((senha == null) ? 0 : senha.hashCode());
return result;
}
/**
* Este método poder ser gerado AUTOMATICAMENTE pelo Java, juntamente com o método "hashCode()".
* Eles São necessários para determinarmos um criterio de igualdade entre 2 objetos.
*
* Obs.: É primoridal dar atenção para este detalhe, principalmente quando trabalhamos com Estruturas
* de Dados como Set.
*
* @param Object
* @return boolean
*/
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null) {
return false;
}
if (!(obj instanceof Usuario)) {
return false;
}
Usuario other = (Usuario) obj;
if (id == null) {
if (other.id != null) {
return false;
}
} else if (!id.equals(other.id)) {
return false;
}
if (login == null) {
if (other.login != null) {
return false;
}
} else if (!login.equals(other.login)) {
return false;
}
if (senha == null) {
if (other.senha != null) {
return false;
}
} else if (!senha.equals(other.senha)) {
return false;
}
return true;
}
}
TELA ONDE O ADMINISTRADOR CRIO O USUARIO:
<ui:composition template="/WEB-INF/template/usuario_list_template.xhtml">
<ui:define name="titulo">#{prompt.usuario}</ui:define>
<ui:define name="descricao">#{prompt.usuario_Incluir}</ui:define>
<ui:define name="mensagemSistema" />
<ui:define name="corpo">
<a4j:keepAlive beanName="usuarioActions" />
<h:form id="formUsuarioNew">
<rich:panel>
<f:facet name="header">
<h:outputText value="#{prompt.usuario}" />
</f:facet>
<h:panelGrid columns="3">
<h:panelGroup>
<h:outputText value="#{prompt.usuario_nome}" />:
</h:panelGroup>
<h:inputText id="nome" value="#{usuarioActions.usuarioCorrente.nome}"
maxlength="#{constantes.lUsuarioNome}" size="20" required="true"/>
<h:message for="nome" styleClass="error" />
<h:panelGroup>
<h:outputText value="#{prompt.login}" />:
</h:panelGroup>
<h:inputText id="login" value="#{usuarioActions.usuarioCorrente.login}"
maxlength="#{constantes.lUsuarioLogin}" size="20" required="true"/>
<h:message for="login" styleClass="error" />
<h:panelGroup>
<h:outputText value="#{prompt.senha}" />:
</h:panelGroup>
<h:inputSecret id="senha" value="#{usuarioActions.usuarioCorrente.senha}"
maxlength="#{constantes.lUsuarioSenha}" size="20" required="true">
</h:inputSecret>
<h:message for="senha" styleClass="error" warnClass="warn" />
<h:panelGroup>
<h:outputText value="#{prompt.usuario_confirmacaosenha}" />:
</h:panelGroup>
<h:inputSecret id="senhaConfirm" value="#{usuarioActions.confirmacaoSenha}"
size="20" required="true">
</h:inputSecret>
<h:message for="senhaConfirm" styleClass="error" warnClass="warn" />
<h:panelGroup>
<h:outputText value="#{prompt.usuario_tipo}" />
</h:panelGroup>
<h:selectOneMenu value="#{usuarioActions.comboTiposUsuario.selecao}">
<f:selectItems value="#{usuarioActions.comboTiposUsuario.listaSelecao}"/>
</h:selectOneMenu>
</h:panelGrid>
</rich:panel>
<br />
<br />
<h:commandButton id="botaoIncluir" value="#{prompt.confirmarInclusao}"
action="#{usuarioActions.inclui}" />
<h:commandButton id="botaoCancelar" value="#{prompt.cancelar}"
action="#{usuarioActions.cancelar}" immediate="true" />
</h:form>
</ui:define>
</ui:composition>