2

jquery.validate.js を使用してフォームを検証していますが、重複したエントリを特定する必要があります。このため、カスタム メソッドを使用しています。

jQuery.validator.addMethod("uniqueName", function(name, element) {
        var response;
        $.ajax({
            type: "POST",
            dataType : "json",
            url:"${pageContext.request.contextPath}/company/getDuplicate",
            data:"name="+name,
            async:false,
            success:function(data){
                response = data;
            },
            error: function (data) {
                alert(request.responseText);
            }
        });
    }, "Name is Already Taken");

ルールセクションで:

rules : {
            name : {
                required : true,
                uniqueName : true
                }
        },
        errorElement : "span",
        messages : {
            name : {
                required : "Name Is Required"
            }
        }

これは私のJSPコードです:

<label>Name:</lable>
<form:input path="name"></form:input>

指定されたURLにヒットしているが、Jsonはメソッドにnull値を送信する

これは私のコントローラーメソッドです:

@RequestMapping(value = "/company/getDuplicate", method = RequestMethod.POST, headers = "Accept=*/*")
     public @ResponseBody void getTitleList(HttpServletRequest request, HttpServletResponse response) {

        JSONObject json = new JSONObject();
        String data = ((String)json.get("name"));
        List<Company> matched = companyService.getDuplicate(data);
        if(matched != null && !"".equals(matched)){
            json.put("name", "present");
            System.out.flush();
        }
        else{
            json.put("name", "notPresent");
            System.out.flush();
        }
    }

私が欲しいのは:1.テキストボックスの値をコントローラーに送信する方法(私の場合はJsonがnullを送信)。2.上記の方法では、「名前」がデータベースに存在しない場合、「一致した」変数が次のように表示されるため、「ifステートメントに書き込み条件がある」とは思いません=> []

この問題について私を助けてください。前もって感謝します。

4

1 に答える 1