簡體   English   中英

我的JSP if-else語句無法正常工作

[英]My JSP if-else statement is not working properly

我是JSP的新手,我想使用JSP驗證HTML表單,我在代碼中使用了if-else語句。 但是它不能正常工作。

<%
        String fname = request.getParameter("fname");
        String lname = request.getParameter("lname");
        String email = request.getParameter("email");
        String uname = request.getParameter("username");
        String pw = request.getParameter("password");
        String pw1 = request.getParameter("confirm");
        String phone = request.getParameter("phone");
        String idno = request.getParameter("idno");
        String gender = request.getParameter("gender");
        String dob = request.getParameter("dob");
        String bgroup = request.getParameter("bloodgroup");
        String bweight = request.getParameter("weight");
        String lastdonate = request.getParameter("lddate");
    if (request.getParameter(fname) == null
            || request.getParameter(lname) == null 
            || request.getParameter(email) == null
            || request.getParameter(uname) == null
            || request.getParameter(pw) == null
            || request.getParameter(pw1) == null
            || request.getParameter(phone) == null
            || request.getParameter(idno) == null
            || request.getParameter(dob) == null 
            || request.getParameter(bweight) == null
            || request.getParameter(lastdonate) == null) {
        out.println("<div class='alert-message alert-message-warning' align='center'>"+
            "<h4>Alert Message Warning</h4>"+
            "<p>Some Fields Are Empty <br>" +
                "<strong>Please Fill All The Fields</strong>."+
            "</p></div>");
    } 
   else if (request.getParameter(pw) != request.getParameter(pw1) ) {
        out.println("<div class='alert-message alert-message-warning' align='center'>"+
            "<h4>Alert Message Warning</h4>"+
            "<p>Confirmed Password Doesn't Match With the Password <br>" +
                "<strong>Please Re-Type Your Password</strong>."+
            "</p></div>");
    }

    else {

        try {
            Class.forName("com.mysql.jdbc.Driver").newInstance();
        } catch (Exception ex) {
            System.out.println(ex);
        }
        try {
           Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/minutehelp","root","");
           Statement stm = con.createStatement();
           stm.executeUpdate("INSERT INTO donors VALUES(NULL, '"+fname+"', '"+lname+"', '"+email+"', '"+uname+"', '"+pw1+"', '"+phone+"', '"+idno+"', '"+gender+"', '"+dob+"', '"+bgroup+"', '"+bweight+"', '"+lastdonate+"')");
           stm.close();
        } catch (Exception ex) {
            out.println(ex);
        } 

    }

        %>

首先,我要檢查所有字段是否為空或已填充,然后要檢查密碼和已確認的密碼是否相同,並且如果這些密碼沒有錯誤,我想將這些數據發送到數據庫表“ donor”。 但是它無法正常工作,並且始終在if語句內顯示警告消息,並且未插入數據。 但是,如果我僅使用if語句而不是if-else,則即使條件為false,它始終顯示第一條警告消息並每次都插入數據。 我是JSP的新手,請有人在這里幫助我。 謝謝。

if語句中的問題是您試圖進行比較,即request.getParameter(fname)等等。 但這不存在。 如果要比較,請在您的request.getParameter("something")放入“”

另外,如果您想在您的情況下使用變量進行比較,例如fname,pw,pw1等,請嘗試執行以下操作

 if(fname==null || uname==null ... ){
     //do something
     }

現在查看密碼值是否相等,請嘗試在else-if中執行此操作

else if (pw.equals(pw1) ) {
  //do something
}

另外,您可以像這樣修改代碼以實現所需的功能

if(fname!=null || uname!=null ...){

    if (pw.equals(pw1) ) {
  //your insert code put here 
    }else{
     out.println("<div class='alert-message alert-message-warning' align='center'>"+
        "<h4>Alert Message Warning</h4>"+
        "<p>Confirmed Password Doesn't Match With the Password <br>" +
            "<strong>Please Re-Type Your Password</strong>."+
        "</p></div>");
  }


}else{

  out.println("<div class='alert-message alert-message-warning' align='center'>"+
            "<h4>Alert Message Warning</h4>"+
            "<p>Some Fields Are Empty <br>" +
                "<strong>Please Fill All The Fields</strong>."+
            "</p></div>");


}

希望這可以幫助 !!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM