新しいrooプロジェクトが正常に終了しましたが、今はログインページの検証に問題があります。バリデーターがコントローラに制御を渡す前に、バリデータが窒息しているようです。私は決してBindingResultをチェックする機会を与えられません。私はいくつかの似たような質問をウェブ上で調べました。私のコードは自分が行っていることに合っているようです。春@Validバリデーターが正しく呼び出されない(Roo、Hibernate)
最初にフォームを送信するときにエラーが発生します(検証に合格するとエラーメッセージは表示されません)。この場合、私は、パスワードの最小長を満たしていませんでした:
org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.validation.BindException: org.springframework.validation.BeanPropertyBindingResult: 1 errors
Field error in object 'loginUser' on field 'password': rejected value [b]; codes [Size.loginUser.password,Size.password,Size.java.lang.String,Size]; arguments [org.springframework.context.support.DefaultMessageSourceResolvable: codes [loginUser.password,password]; arguments []; default message [password],50,5]; default message [Password must be between 1 and 50 characters long]
org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:894)
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
私のエンティティの検証は、次のように設定されています
public class LoginUser {
@NotNull
@NotEmpty
private String username;
@NotNull
@NotEmpty(message = "Password must not be blank.")
@Size(min = 5, max = 50, message = "Password must be between 1 "
+ " and 50 characters long")
private String password;
}
は、ここに私のマークアップです:
<form:form method="post" commandName="command">
<form:label path="username">Username: </form:label>
<form:input path="username"/>
<form:errors path="username"/>
<form:label path="password">Password: </form:label>
<form:password path="password"/>
<form:errors path="password"/>
<input type="submit"/>
</form:form>
そして、コントローラ:
@ModelAttribute("command")
public LoginUser fbo(){
LoginUser u = new LoginUser();
u.setUserType(UserType.USER);
return u;
}
@RequestMapping(value="/login.htm", method=RequestMethod.POST)
public String doLogin(@Valid LoginUser command,
HttpServletRequest request, BindingResult result
){
if(result.hasErrors()){
return "login";
}
}
それが重要念のD、webmvc-config.xmlで生成されたXML:
<!-- The controllers are autodetected POJOs labeled with the @Controller annotation. -->
<context:component-scan base-package="com.tcg.myproject" use-default-filters="false">
<context:include-filter expression="org.springframework.stereotype.Controller" type="annotation"/>
</context:component-scan>
<!-- Turns on support for mapping requests to Spring MVC @Controller methods
Also registers default Formatters and Validators for use across all @Controllers -->
<mvc:annotation-driven conversion-service="applicationConversionService"/>
は時間の私の髪を引っ張ってきて、私はそれが何ができるかを把握することはできません。読んでくれてありがとう!
なぜSpring Securityアドオンを使用しなかったのですか? – bhagyas
単にスプリングセキュリティを使用するものではありません。 –