CDI进阶第三步 CDI验证器

CDI进阶第三步 验证器

验证的需求在实际的应用开发中经常用到,比如对EMAIL进行验证,对手机号码进行验证等等。

我这里用一个简单的DEMO来讲下怎样使用J2EE的验证技术。

J2EE的验证技术很通用,不止在CDI可以用,而且在EJBJPA都可以使用。

为了简单起见,我们先使用J2EE内建的注解来进行验证。

先写个简单的CDI BEAN

 

package cdivalidate;

 

import javax.enterprise.context.RequestScoped;

import javax.validation.constraints.Max;

 

@RequestScoped

public class HelloBean {

private int num;

 

public void setNum(@Max(100) int num) {

this.num = num;

}

 

public CharSequence greeting() {

return "Hello," + num;

}

 

}

这里用到一个注解,javax.validation.constraints.Max,这是个内建注解,表示最大值为100,也就是超过100就不会报错。然后我们写个servlet来试一试。

package cdivalidate;

 

import java.io.IOException;

 

import javax.inject.Inject;

import javax.servlet.ServletException;

import javax.servlet.annotation.WebServlet;

import javax.servlet.http.HttpServlet;

import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

 

@WebServlet("/hello.html")

public class HelloServlet extends HttpServlet {

 

private static final long serialVersionUID = 1L;

 

@Inject

private HelloBean helloBean;

 

@Override

protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {

int num  = Integer.parseInt(req.getParameter("num"));

helloBean.setNum(num);

resp.getWriter().append(helloBean.greeting());

}

 

}

好了,servlet写完了。

开始在浏览器试一试。

 CDI进阶第三步 CDI验证器_第1张图片CDI进阶第三步 CDI验证器_第2张图片

可以看到当我在浏览器输入100时,很正常,输入101后,就报异常了,验证不通过。

 

你可能感兴趣的:(bean,技术,CDI,对象,J2EE)