寫法有多種,應該可以任意組合,最重要的是要引入spring.ftl
1.Bean裏面的就不再多寫了,來個簡單就可以了
@NotEmpty(message="用戶密碼碼不可爲空") 或者寫在get方法上
private String userPassword;
2.Controller裏面的寫法有幾種,看個人習慣
(1).先看第一種這個是返回String的,參數中有@ModelAttribute("user"),在頁面中會用到,稍後再說
@RequestMapping(value="login",method=RequestMethod.POST)
public String login(@ModelAttribute("user") @Valid User user, BindingResult br){
if(br.hasErrors()){
return "login";
}else{
return "redirect:index.jsp";
}
}
(2).第二種,這種同樣返回String,但是參數有變化,
public String login(@Valid User user, BindingResult br, ModelMap model){
if(br.hasErrors()){
model.addAttribute("user", user);
return "login";
}else{
return "redirect:index.jsp";
}
}
(3)第三種,返回值的變化,同樣可以改變參數
public ModelAndView login(@ModelAttribute("user") @Valid User user, BindingResult br){
if(br.hasErrors()){
return new ModelAndView("login");
}else{
return new ModelAndView("redirect:index.jsp");
}
}
3.再看模版中的寫法,有兩種
(1).一個是bind的方式,這個就是遍歷了
<@spring.bind "user.userCode" />
<li><input type="text" name="userCode" value="${spring.status.value?default("")}" /></li>
<#list spring.status.errorMessages as error> <b>${error}</b> <br> </#list>
(2).第二個是輸出標籤,少寫一部分東西
<@spring.formInput "user.userCode" />
<@spring.showErrors "" />
最後。。。。就是你隨意組合吧,都可以正常顯示結果
剛開始用spring,花了三個多小時才讓這個顯示出來,就是有個地方沒有注意,剛開始進這個頁面的時候,user是空的,所以頁面會報錯,在POST方法中怎麼添加user都出錯,竟然一直沒有注意,真實悲催啊,後來發現之後就很順暢了,幾分鐘全部可以測試出來。
可以來個簡單的寫法,這樣就不會出錯了,也可以在get方式進這個頁面的時候在Model中new一個空的user,完全看個人習慣。
@ModelAttribute("user")
public User getUser() {
return new User();
}