在执行Action时,输入验证器时很重要的一个步骤。
ProductValidator 类
public class ProductValidator {
public List<String> validator(ProductForm productForm){
/*该类提供了一个作用于ProductForm (见前几次博客)的validate方法
* 验证器可以确保产品的名称不为空,以及其价格是个有效数字
* validate方法返回一个包含验证错误消息的String的List。
* List为空表示验证成功。
*/
List<String> errors = new ArrayList<String>();
String name = productForm.getName();
if(name == null || name.trim().isEmpty()){
errors.add("product must have a name");
}
String price = productForm.getPrice();
if(price == null || price.trim().isEmpty()){
errors.add("product must have a price");
}else{
try{
Float.parseFloat(price);
}catch(NumberFormatException e){
errors.add("Invalid price value");
}
}
return errors;
}
}
ControllerServlet 类
public class ControllerServlet extends HttpServlet{
private static final long serialVersionUID = 125232L;
public void doGet(HttpServletRequest request , HttpServletResponse response) throws ServletException, IOException {
process(request,response);
}
public void doPost(HttpServletRequest request,HttpServletResponse response) throws ServletException, IOException {
process(request, response);
}
/*
* process处理请求
*/
private void process(HttpServletRequest request,
HttpServle