Spring <;形式:错误不起作用
从早上开始,我就被困在下面的问题中。 在一个地方,同样的东西在起作用,而在第二个地方,它不起作用 未显示错误。 我检查了很多次这个问题被问到,我参考了所有的问题和解决方案,但问题仍然是一样的。按照我在控制器中使用的代码Spring <;形式:错误不起作用,spring,hibernate,spring-mvc,Spring,Hibernate,Spring Mvc,从早上开始,我就被困在下面的问题中。 在一个地方,同样的东西在起作用,而在第二个地方,它不起作用 未显示错误。 我检查了很多次这个问题被问到,我参考了所有的问题和解决方案,但问题仍然是一样的。按照我在控制器中使用的代码 @RequestMapping(method = RequestMethod.POST) public String findRide(@ModelAttribute("postAd") PostAdRR user,ModelMap model,@Valid PostAd
@RequestMapping(method = RequestMethod.POST)
public String findRide(@ModelAttribute("postAd") PostAdRR user,ModelMap model,@Valid PostAdRR postAd,
BindingResult result,HttpSession session,HttpServletRequest request) {
if (result.hasErrors()) {
System.out.println(result.toString());
return "postAd";
}
即使它进入错误块并打印SOP行
但它并没有表现在形式上
<form:form method="POST" commandName="postAd" enctype="multipart/form-data" >
<form:errors path="contactName" cssClass="Err"/>
同样的代码也在其他地方工作
请提供一些建议。我几乎尝试了所有的组合。我有点想知道为什么您的示例中的名称不匹配 一方面它是:
中的联系人姓名
,另一方面它是:标题
也许这就是原因
如果不起作用,请尝试
(在发件人中)显示所有错误消息。该测试的结果有望帮助您确定问题是在thw视图中还是在控制器中。er您可以尝试将@NotNull
与@NotEmpty
一起注释。也可以在模型属性之前在控制器中尝试@Valid
。这些只是猜测,因为您告诉另一个页面正在工作。我认为问题在于您的控制器函数签名。
您正在对其他对象进行验证,并且您的模型属性是另一个对象。这不是验证对象并在表单上显示错误的正确方法
您的方法签名应如下所示
public String findRide(@Valid @ModelAttribute("postAd") PostAdRR user,ModelMap model, BindingResult result,HttpSession session,HttpServletRequest request)
也就是说,现在将同一对象绑定到要验证的视图
希望这对你有帮助
干杯。谢谢你的帮助。这是在发布问题时的打字错误,我也尝试了你的建议。但是仍然不走运。我不明白为什么这在第二种形式下不起作用,而同样的配置在第一种形式下起作用。
public String findRide(@Valid @ModelAttribute("postAd") PostAdRR user,ModelMap model, BindingResult result,HttpSession session,HttpServletRequest request)