Я использую Spring MVC на стороне сервера, но на одной из страниц я решил создать проверку AJAX с помощью jQuery, а не проверку Spring по умолчанию.
Все отлично работает, кроме случаев, когда мне нужно выполнить удаленную проверку, чтобы проверить, существует ли уже «заголовок» в базе данных.
Для JavaScript у меня есть следующее:
var validator = $("form").validate({
rules: {
title: {
minlength: 6,
required: true,
remote: {
url: location.href.substring(0,location.href.lastIndexOf('/'))+"/checkLocalArticleTitle.do",
type: "GET"
}
},
html: {
minlength: 50,
required: true
}
},
messages: {
title: {
required: "A title is required.",
remote: "This title already exists."
}
}
});
Затем я использую Spring-Json для проверки и даю ответ:
@RequestMapping("/checkLocalArticleTitle.do")
public ModelAndView checkLocalArticleTitle(HttpServletRequest request,
HttpServletResponse response) throws ServletException, IOException {
Map model = new HashMap();
String result = "FALSE";
try{
String title = request.getParameter("title");
if(!EJBRequester.articleExists(title)){
result = "TRUE";
}
}catch(Exception e){
System.err.println("Exception: " + e.getMessage());
}
model.put("result",result);
return new ModelAndView("jsonView", model);
}
Однако это не работает, и поле «заголовок» никогда не проверяется.
Я думаю, что причина этого в том, что я отвечаю так:
{result:"TRUE"}
На самом деле ответ должен быть:
{"TRUE"}
Я не знаю, как вернуть один ответ, подобный этому, используя ответ ModelAndView.
Еще одна вещь, которая не работает, это настраиваемое сообщение для «удаленной» проверки:
messages: {
title: {
required: "A title is required.",
remote: "This title already exists."
}
},
Требуется необходимое сообщение, но не удаленное сообщение.
Я посмотрел вокруг, но я не видел много людей, использующих Spring и jQuery одновременно. По крайней мере, не смешиваясь с удаленными валидациями jQuery и Spring-Json.
Я был бы признателен за помощь здесь.