2017-03-18 6 views
0

入力を確認するためにマネージドBeanクラスにbilgidorumu()というメソッドがあります。データベース(ユーザー名とパスワード)との一致がある場合、アプリケーションはウェルカムページanasayfa.xhtmlに移動する必要があります。それ以外の場合は、同じページ(index.xhtml)にとどまります。私の問題は、同じページ(index.xhtml)にとどまる前にアラートを表示したいということです。したがって、ユーザー名とパスワードが一致しない場合は、最初にアラートが表示され、その後はindex.xhtmlにとどまります。しかし、Javascriptはサーバー側でクライアント側とJavaコード上で動作するため、どうすればよいのかわかりません。私はonclickイベントに警告を表示しようとしたが、それは働いていない: <h:commandButton value="GİRİŞ" styleClass="button" action="#{kntrl.bilgidorumu()}" onclick="onBack()"/>JSFのJavascriptによる警告

私の入力要素をJSの機能を経由して到達するために:

<h:inputText id="username" value="#{kntrl.kulad}" 
pt:placeholder="username" required="true" 
requiredMessage="Kullanıcı adı girilmesi zorunlu"/> <h:inputSecret 
id="pw" value="#{kntrl.kulsifre}" pt:placeholder="password" 
required="true" requiredMessage="Şifre girilmesi zorunlu"/> 

JS機能:

function onBack(){ 
    var kulad=document.getElementById("login-form:username").value; 
    var kulsifre=document.getElementById("login-form:pw").value; 
    alert(kulad+kulsifre);    
} 

いるindex.xhtml :

<div class="login-page"> 
     <div class="form"> 
     <h:form class="register-form"> 
      <h:inputText pt:placeholder="name"/> 
      <input type="password" placeholder="password"/> 
      <input type="text" placeholder="email address"/> 
      <button>create</button> 
      <p class="message">Already registered? <a href="#">Sign In</a></p> 
     </h:form> 
     <h:form class="login-form"> 
      <h:inputText id="username" value="#{kntrl.kulad}" pt:placeholder="username" required="true" requiredMessage="Kullanıcı adı girilmesi zorunlu"/> 
      <h:message for="username" style="color: red"></h:message> 
      <h:inputSecret id="pw" value="#{kntrl.kulsifre}" pt:placeholder="password" required="true" requiredMessage="Şifre girilmesi zorunlu"/> 
      <h:message for="pw" style="color: red; " ></h:message> 
      <h:commandButton value="GİRİŞ" styleClass="button" action="#{kntrl.bilgidorumu()}" onclick="onBack()"/> 
      <p class="message">Not registered? <a href="#">Create an account</a></p> 
     </h:form> 
     </div> 
    </div> 
       <f:verbatim> 
        <script type="text/javascript"> 
         function onBack(){ 
          var kulad=document.getElementById("login-form:username").value; 
          var kulsifre=document.getElementById("login-form:pw").value; 
          alert(kulad+kulsifre);     

         } 

        </script> 

       </f:verbatim> 

管理b ean:

@ManagedBean(name = "kntrl") 
@RequestScoped 
public class kontrolet { 

    private int id; 
    private String adsoyad; 
    private String birim; 
    private String bolum; 
    private String unvan; 
    private int puan; 
    private String kulad; 
    private String kulsifre; 

    public kontrolet() { 
    } 

    public String bilgidorumu() throws ScriptException { 
     try { 
      Class.forName("com.mysql.jdbc.Driver"); 
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/akademiktesvik", "root", ""); 
      String query = "Select * from kisiler"; 
      Statement stmt = con.createStatement(); 
      ResultSet rs = stmt.executeQuery(query); 
      while (rs.next()) { 
       if (rs.getString("kulad").equals(kulad) && rs.getString("kulsifre").equals(kulsifre)) { 
        return "anasayfa?faces-redirect=true"; 
       } 

      } 

     } catch (Exception e) { 
      System.out.println("Baglanti kuurulmadı hata var" + e.getMessage()); 
     } 

     return "index"; 

    } 

    public int getId() { 
     return id; 
    } 

    public void setId(int id) { 
     this.id = id; 
    } 

    public String getAdsoyad() { 
     return adsoyad; 
    } 

    public void setAdsoyad(String adsoyad) { 
     this.adsoyad = adsoyad; 
    } 

    public String getBirim() { 
     return birim; 
    } 

    public void setBirim(String birim) { 
     this.birim = birim; 
    } 

    public String getBolum() { 
     return bolum; 
    } 

    public void setBolum(String bolum) { 
     this.bolum = bolum; 
    } 

    public String getUnvan() { 
     return unvan; 
    } 

    public void setUnvan(String unvan) { 
     this.unvan = unvan; 
    } 

    public int getPuan() { 
     return puan; 
    } 

    public void setPuan(int puan) { 
     this.puan = puan; 
    } 

    public String getKulad() { 
     return kulad; 
    } 

    public void setKulad(String kulad) { 
     this.kulad = kulad; 
    } 

    public String getKulsifre() { 
     return kulsifre; 
    } 

    public void setKulsifre(String kulsifre) { 
     this.kulsifre = kulsifre; 
    } 

} 

答えて

1

JavaScriptアラートを使用することはお勧めできません。しかし、あなたは本当に、あなたの質問はの重複になりたい場合:ユーザ名とパスワードが検証ことと一致して示すものではありませんとき

私は単にメッセージを設定することをお勧め失敗しました:

FacesContext context = FacesContext.getCurrentInstance(); 
FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_ERROR, 
             "Your message", 
             "Message details"); 
context.addMessage(null, message); 
context.validationFailed(); 

addMessagenullに注意してください、これは私たちがメッセージにクライアントIDを設定しないことを意味します。これにより、メッセージはグローバルになります。あなたのページに表示するには、単に使用します。

<h:messages globalOnly="true"/> 

も参照してください:

+0

のTyの先生は今jsの警告よりも良く見えます –

関連する問題