gpt4 book ai didi

java - 使用 Spring 表单验证错误

转载 作者:行者123 更新时间:2023-12-01 15:14:38 24 4
gpt4 key购买 nike

我正在尝试使用 sf:form 保存一个实体。

这是jsp:

<sf:form method="POST" action="${pageContext.request.contextPath}/addStudent" modelAttribute="student">
<fieldset>
<table>
<tr>
<th><sf:label path="nb">Number:</sf:label></th>
<td><sf:input type="text" path="nb"/><br/>
<sf:errors path="nb"></sf:errors>
</tr>
......
</table>
</fieldset>

实体中的属性是这样的:

@NotNull(message="not null")
@Size(min=5, max=10, message="length min 5")
@Column(name="NB", unique=true)
private String nb;

Controller :

@RequestMapping(value="/addStudent", method=RequestMethod.POST)
public ModelAndView addStudent(HttpServletRequest request, @ModelAttribute("student") @Valid Student student, BindingResult bR){

ModelAndView mav = new ModelAndView("students");
if(bR.hasErrors()){
return mav;
}
studentService.saveStudent(student);
return mav;
}

好吧,当我将 nb 字段留空或条目太短时,我会收到验证错误。我的问题是错误没有显示在 jsp 中,但抛出了异常:

List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='length min 5', propertyPath=nb, rootBeanClass=class i.have.serious.problem.Student, messageTemplate='length min 5'}
javax.validation.ConstraintViolationException: Validation failed for classes [i.have.serious.problem.Student] during persist time for groups [javax.validation.groups.Default, ]

也许我错过了一些东西..我感谢任何提示或帮助,谢谢

----------------------------------------已解决-------- ----------------------------

最佳答案

确实..我错过了一些东西 -> 如果类路径上存在 JSR-303 Provider,则支持使用 @Valid 验证 @Controller 输入。

xmlns:mvc="http://www.springframework.org/schema/mvc"
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.1.xsd">

<mvc:annotation-driven />

现在工作正常:)..感谢您的关心!

关于java - 使用 Spring 表单验证错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11804968/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com