将表单数据绑定到模型的最佳方法是什么?我的意思是我有一个简单的模型类:
public class LoginCommand {
private String login;
private String password;
//getters and setters
}
如何在Spring 2.5中将表单数据绑定到此命令的最佳方法是什么? @InitBinder注释可以帮助吗?我无法理解它是如何工作的。我认为它可能起作用的一种方式是吼叫。
@Controller
public LoginController {
@RequestMapping(value = "/login/*", method = RequestMethod.POST)
public ModelAndView loginAction(@ModelAttribute("loginCommand") LoginCommand lc, BindingResult result) {
new LoginCommandValidator().validate(lc, result);
if (result.hasErrors()){
// didn't validate
} else {
// check against db
}
}
}
这是最好的方法吗?
答案 0 :(得分:1)
好吧,对于登录操作,您可能需要查看Spring安全性。除此之外,我将对更一般的问题给出一些见解,并建议你研究@RequestParam注释......
@RequestMapping(value = "/login/*", method = RequestMethod.POST)
public ModelAndView handleLogin(@RequestParam("login") String username,
@RequestParam("password") String password) {
// create constructor, remove setters to make this immutable
LoginCommand lc = new LoginCommand(username, password);
// more code here...
}
我意识到可能有多种方法可以解决这个问题,但我喜欢这种方法,因为它简单明了;或者更简单地说,虽然略显冗长,但它不那么神奇且容易阅读。