我是一个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>
有人可以建议如何改进这种方法吗?
答案 0 :(得分:0)
添加验证的步骤。
编写验证器类并实现Validator类为orerridden方法提供实现
import org.springframework.validation.Errors;
import org.springframework.validation.ValidationUtils;
import org.springframework.validation.Validator;
public class LoginValidator implements Validator{
@override
public void validate(Object login, Errors err ){
//Write your logic to follow up your Login validation
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "username", "field.required", "UserName Required field");
ValidationUtils.rejectIfEmptyOrWhitespace(errors, "password", "field.required", "Password Required field");
}
}
然后在* -servlet.xml中创建一个bean条目
在JSP中添加错误逻辑
由于 帕