2012-07-06 104 views
0

我正在使用spring 3 mvc,我需要使用它進行驗證。Jpa和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獲得的PARAMS。

如果我不使用驗證器它可以正常工作,但是當我使用驗證器時它不起作用,它向我展示了一個400(錯誤請求)當我提交表單時。

我不是什麼問題。你可以幫我嗎? 你有什麼例子嗎?

回答

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, ....){...} 

另外,我建議把一個斷點,以檢查是否請求得到由控制器映射。