0

我正在使用 spring 3 mvc,我需要对其进行验证。

实际上验证器不起作用,我无法理解原因。

我做下一个配置:

在 pom.xml 中,我添加了下一个依赖项:

 <dependency>
     <groupId>org.hibernate</groupId>
     <artifactId>hibernate-validator</artifactId>
     <version>4.3.0.Final</version>
 </dependency>

我执行 productsForm.jsp 并添加标签:

<%@taglib prefix="form" uri="http://www.springframework.org/tags/form"%>

我添加标签: <form:form><form:input>

我在控制器中写了以下内容:

//Here is to show the form

@RequestMapping(value = "Products", method = RequestMethod.GET)
public String ManagmentHome(Map model2,Model model,HttpServletRequest request){
    Product validationForm=new Product();  
    model2.put("validationForm",validationForm);
    return "productsForm";
}

// Here is to process the form

public String addProduct(@RequestParam String product,  BindingResult result, Map model2,Model model, HttpServletRequest request,@Valid Product validationForm) {

    if(result.hasErrors()){
        return "productsForm";
     }
}

我正在使用 Ajax 来获取参数。

如果我不使用验证器,它可以正常工作,但是当我使用验证器时它不起作用,当我提交表单时它会显示 400(错误请求)。

我不知道是什么问题。你能帮助我吗?你有什么例子吗?

4

1 回答 1

0

你的控制器不应该有带有 Ajax Header 的 @RequestMapping 吗?

例如,在控制器中:

 public static final String AJAX = "X-Requested-With=XMLHttpRequest";
 @RequestMapping(value = "/url", 
  method = RequestMethod.GET,headers=  AJAX)
  public String someMethod(argument1, ....){...}

另外,我建议设置一个断点来检查请求是否被控制器映射。

于 2012-07-06T22:22:15.343 回答