【问题标题】:My JSP if-else statement is not working properly我的 JSP if-else 语句不能正常工作
【发布时间】:2019-02-10 13:57:36
【问题描述】:

我是 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);
        } 

    }

        %>

首先我想检查所有字段是否为空或填充,然后我想检查密码和确认密码是否相同,如果没有错误,我想将这些数据发送到我的数据库表'donors '。但它不能正常工作,它总是在 if 语句中显示警告消息,并且没有插入数据。但是,如果我只使用 if 语句而不是 if-else,它总是会显示第一条警告消息,并且每次都插入数据,即使条件为假。 我对 JSP 很陌生,请有人在这里帮助我。 谢谢。

【问题讨论】:

    标签: java html jsp


    【解决方案1】:

    您的 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>");
    
    
    }
    

    希望这会有所帮助!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-01-14
    • 1970-01-01
    • 1970-01-01
    • 2022-11-13
    • 2011-03-14
    • 1970-01-01
    • 2022-11-24
    • 2017-11-25
    相关资源
    最近更新 更多