[英]Invalid target for Validator in spring error?
大家好我每次嘗試在我的春天調用驗證器時都會收到以下錯誤
Servlet.service() for servlet spring threw exception: java.lang.IllegalStateException: Invalid target for Validator
請看看並幫助我解決這個錯誤,以前我用戶登錄頁面的驗證,它工作正常,但現在它無法正常工作。
這是我的代碼片段。
調節器
@Controller
public class NewUserRegistration
{
@Autowired
private UserService userService;
@Autowired
private NewUserValidator newUserValidator;
@InitBinder
public void initBinder(WebDataBinder binder)
{
binder.setValidator(newUserValidator);
}
@RequestMapping(value="/newUserAdd", method=RequestMethod.POST)
public String addUser(@ModelAttribute("user")@Valid User user,BindingResult result, Model model)
{
return "NewUser";
}
}
驗證器
@Component
public class NewUserValidator implements Validator
{
@Override
public boolean supports(Class<?> classz)
{
return NewUserRegistration.class.equals(classz);
}
@Override
public void validate(Object obj, Errors error)
{
//Validation login for fields
}
}
JSP頁面
<form:form action="newUserAdd" method="POST" modelAttribute="user">
<center>
<table>
<tr><td>User Id:</td><td><input name="userId" type="text" /></td><td><font color="red"><c:out value="${userIdError}" /></font> </td></tr>
<tr><td>Password:</td><td><input name="userPassword" type="password"/></td><td><font color="red"><c:out value="${userPasswordError}" /></font></td></tr>
<tr><td>Confirm Password:</td><td><input name="userConfirmPassword" type="password"/></td><td><font color="red"><c:out value="${userPasswordError}" /></font></td></tr>
<tr><td>Name:</td><td><input name="userName" type="text"/></td><td><font color="red"><c:out value="${userPasswordError}" /></font></td></tr>
<tr><td></td><td><input type="submit" value="Create"/></td></tr>
</table>
</center>
</form:form>
問題實際上是在Validator類中使用NewUserRegistration的對象,這是錯誤的,因為您要驗證用戶的對象而不是NewUserRegistration的對象。
@Override
public boolean supports(Class<?> classz)
{
return NewUserRegistration.class.equals(classz);
}
應該是
@Override
public boolean supports(Class<?> classz)
{
return User.class.equals(classz);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.