7

こんにちは、春にバリデーターを呼び出そうとすると、次のエラーが発生します

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>
4

1 に答える 1