0

こんにちは皆さん、私はブートストラップで設計された登録フォームを持っています。ここでは、リモートバリデーターを使用してすべてのフォームフィールドを検証し、すべての行をチェックする checkusername ブールメソッドを持つ registerdao.java メソッドを持っています。ユーザー名が存在する場合はユーザー名文字列を返します。ユーザー名フィールドに入力するときにユーザー名をチェックする登録サーブレットの checkusernameexists メソッド。コードが何も表示されない理由がわかりません。以下のコードは、データベースに対してユーザー名をチェックせず、通知しています。ユーザー名をチェックするように JavaScript を記述する方法データに対して、またはこのコードを機能させる方法を教えてください。どんな助けでも大歓迎です?ありがとう

ReegisterDao.java public static boolean checkUserName(String userName) throws SQLException{ String checkUserNameQuery = "select * from EmployeeDetails where USER_NAME='"+userName+"'";

  try{


 // preparing some objects for connection
currentCon = ConnectionManager.getConnection();
Statement stmt = currentCon.createStatement();
rs  = stmt.executeQuery(checkUserNameQuery);
boolean more = rs.next();

    // if user does not exist set the isValid variable to false
    return more;
     }



catch (InstantiationException | IllegalAccessException e){}

false を返します。}

RegistrationServlet.java

public int checkUserNameExists(RegistrationBean user) throws SQLException{

        int a=RegistrationDao.Register(user);


    return a;

}

これは、ユーザー名を検証するリモートバリデーターの一部です

   username: {
                    validators: {
                        notEmpty: {
                            message: 'The username is required'
                        },
                        stringLength: {
                            min: 6,
                            max: 30,
                            message: 'The username must be more than 6 and less than 30 characters long'
                        },
                        regexp: {
                            regexp: /^[a-zA-Z0-9_\.]+$/,
                            message: 'The username can only consist of alphabetical, number, dot and underscore'
                        },
                        remote:{
                            message:'This Username is already taken',
                            url:'https://localhost:8080/RegistrationServlet.java',
                            data:'username'
                        },
                        type:'POST'


                }   

                },

これはブートストラップのユーザー名フィールドの一部です

<div class="form-group">
    <label class="col-xs-2 control-label">Username</label>

    <div class="col-xs-4">
        <input type="text" class="form-control" name="username" placeholder="Username" />
    </div></div>
4

1 に答える 1

0

戻り型は有効な json 形式である必要があります。そして、サーブレットからその検証コードに返されるものは、正しいjson形式ではないと思います。インスペクト要素を使用し、ネットワークタブで何が返されているかを確認してください。

まず、リモートを次のように変更する必要があります

             remote: {
                        type: "POST",
                        url: 'RegistrationEmailCheck',//servlet
                        delay: 1000,

                        message: 'Your Message'
                    }

そして、サーブレットからこのようなデータが返されます

  public class RegistrationEmailCheck extends HttpServlet {
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    response.setContentType("application/json");

  PrintWriter out = response.getWriter();
JSONObject json = new JSONObject();
String availEmail = request.getParameter("email");
System.out.println(availEmail);
String SQL = "SELECT email FROM login WHERE email='" + availEmail + "'";
Connection con = DBInfo.getConn();
Statement st;
ResultSet rs;

try {
    st = con.createStatement();
    rs = st.executeQuery(SQL);


    if (rs.next()) {

        out.print("{\"valid\" : false }");
        json.put("valid", false);
        System.out.println("false");


    } else {

        out.print("{\"valid\" : true }");
        json.put("valid", true);
        System.out.println("true");


    }


} catch (Exception ex) {
    ex.printStackTrace();
} finally {

    out.close();
    }



}


}

このコードはメールチェック用です

于 2016-03-29T01:59:03.537 に答える