Çok araştırdım ve bir çözüm bulamadım.Doğrulama hatasından sonra giriş değeri temizlenmiyor
ben JSF 2.1 ve richfaces 4.2.3 kullanarak ve kullanıcıya
giriş bilgilerini İki giriş alanlara sahip doğrulamak oluşturmak istiyorum. Bir kullanıcı adı ve bir Şifre, hem @NotEmpty
ile login.xhtml
<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:rich="http://richfaces.org/rich"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:mt="http://java.sun.com/jsf/composite/components">
<h:body>
<ui:composition template="/protected/user/login-template.xhtml">
<ui:define name="panel-navigation">
<ui:include src="/protected/user/login-left-menu.xhtml" />
</ui:define>
<ui:define name="contentbody">
<h:form>
<div id="content">
<div class="subcolumns">
<div class="c65l">
<div class="subcl">
<p class="sum-error-message" />
<fieldset>
<h3>
<h:outputText value="#{styleguideMessages.login}" />
</h3>
<p>
<h:outputText value="#{messages.login_text}" />
</p>
<div class="subcolumns">
<mt:inputText
id="loginName"
value="#{authenticationPM.loginName}"
label="#{messages.general_label_loginname}"
required="true" />
<div class="c33r validation"></div>
</div>
<div class="subcolumns">
<mt:inputText
id="password"
value="#{authenticationPM.password}"
label="#{styleguideMessages.db_password}"
required="true"
secret="true" />
<div class="c33r validation"></div>
</div>
<div class="subcolumns">
<h:commandLink
id="loginButton"
action="#{authenticationPM.doLogin}"
value="#{styleguideMessages.login}"
title="#{styleguideMessages.login}"
styleClass="button last" />
</div>
</fieldset>
</div>
</div>
</div>
</div>
<mt:commandButton
id="login"
action="#{authenticationPM.doLogin}"
value="hidden"
style="visibility:hidden" />
</h:form>
<script
src="#{facesContext.externalContext.requestContextPath}/js/lib/loginEnter.js"
type="text/javascript"
charset="utf-8"></script>
</ui:define>
</ui:composition>
AuthentificationPM.java
import *;
@Named
@SessionScoped
public class AuthenticationPM extends AbstractPM implements Serializable {
/**
* The user name from the login.
*/
private String userName;
/**
* password.
*/
private String password;
/**
* Returns the login name.
*
* @return String
*/
@NotNull
@Pattern(regexp = "^[^\"/\\[\\]:;|=,+?*<>]*$", message = "{user.loginname.pattern}")
public String getLoginName() {
return userName;
}
/**
* Returns the password.
*
* @return String
*/
@NotNull
public String getPassword() {
return password;
}
/**
* Sets the login name.
*
* @param loginName
* - the login name of the user
*/
public void setLoginName(String loginName) {
this.userName = loginName;
}
/**
* Sets the password.
*
* @param password
* - the password of the user
*/
public void setPassword(String password) {
this.password = password;
}
}
onlardan biri (derseniz şifre) n Dolu, doğrulama başarısız olur ve bir mesaj gösterilir (gerektiği gibi).
Şimdi kullanıcı adını siliyorum ve bir şifre yazalım. Kullanıcı adı boş olduğundan doğrulama başarısız olur. Şifre alanını temizler ve kullanıcı adı için bir mesaj görüntüler.
Ve şimdi hata olur: eski kullanıcı adı yeniden belirir! Bu davranışı nasıl önleyebilirim?
I işlem doğrulama sonra güncelleme modeli ve çağırmak uygulama atlanır ve yanıt yürütülür hale değer olduğunu biliyoruz. As described here.yanıtı, ui bileşeninde saklanan değerleri alır (istekleri) ve geçersiz değeri silmek yerine yeniden oluşturmak için bunları kullanır.
this solution ve this idea denedim. Her iki yol da bileşenimi bulamıyor.
Herhangi bir yardım veya fikir çok takdir edilmektedir.
Selamlar, Kevin
Bana göre tarayıcı, sayfa –
Valar Morghulis sayfasını önbelleğe alır! Önbelleği belirtilen [burada] devre dışı bıraktım (http://stackoverflow.com/questions/5690269/disabling-chrome-cache-for-website-development). Geliştirdiğimiz ortam, tarayıcıların yine de sayfayı önbelleğe almasına izin vermiyor. Yani sebep bu değil. Yine de teşekkürler! – Wavemaster