【发布时间】:2014-06-16 23:12:45
【问题描述】:
我是 Spring 新手,必须处理 Spring 控制器中的一个有效方法,但我想稍微改进一下代码。
该方法部分在 Spring 中实现,需要验证用户在页面上输入的内容。这有两个阶段:首先是检查用户的输入是否为数字,然后检查数据库以确保输入的值存在用户。
方法是:
@RequestMapping(value = "/login", method = RequestMethod.GET)
public String login(@RequestParam("id") String id,
SessionStatus sessionStatus,
Model model) {
Integer personId = null;
try {
personId = Integer.parseInt(id);
}
catch(NumberFormatException e) {
model.addAttribute("message", "Please enter a valid ID.");
sessionStatus.setComplete();
return "errorPage";
}
Person person = null;
person = personService.get(personId);
if (person == null) {
model.addAttribute("message", "Please enter a valid ID.");
sessionStatus.setComplete();
return "errorPage";
}
model.addAttribute("person", person);
sessionStatus.setComplete();
return "userPage";
}
我想在这里使用 Spring Validator,但有人告诉我这些是用于业务对象的表单验证,而不是一个简单的变量。
或者如果不能使用 Validator,我可以使用 Spring 自己的消息传递在页面上向用户显示错误吗?
所以我会在表格上写这样的东西:
<form:form action="/login" method="get">
<form:input path="id" />
<form:errors path="id" />
<input type="submit" value="Submit">
<input type="Reset" value="Reset">
</form:form>
谁能建议如何改进这种方法?
【问题讨论】:
标签: java spring validation spring-mvc