ValidatorFactory 変数 = Validation.buildDefaultValidatorFactory();ValidatorFactoryクラスは、バリデーションを扱うValidatorクラスを生成するファクトリークラスです。まず、「buildDefaultValidatorFactory」メソッドを使って、このValidatorFactoryのインスタンスを用意します。
Validator 変数 = [ValidatorFactory] .getValidator();ValidatorFactoryから、「getValidator」メソッドでValidatorクラスのインスタンスを取得します。このValidatorが、バリデーションに関する各種の機能を提供してくれます。
Set<ConstraintViolation<エンティティ>> 変数 = [Validator] .validate(entity);Validatorの「validate」メソッドを呼び出します。これが、バリデーションのチェックを行うものです。結果は、Setインスタンスで返されます。このSetには、ConstraintViolationというクラスのインスタンスがまとめられています。このConstraintViolationが、発生した例外に関する情報を管理するものです。
for (ConstraintViolation<エンティティ> 変数 : [Set] ) {後は、Setから繰り返しなどで順に値を取り出し処理していくだけですね。では、実際の処理を見てみましょう。
……ConstraintViolationの処理……
}
for (ConstraintViolation<MyDataEntity> err : errs) {
result += err.getMessage() + "<br>";
}
※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
@Override protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String name = request.getParameter("name"); String mail = request.getParameter("mail"); String tel = request.getParameter("tel"); EntityManager manager = factory.createEntityManager(); MyDataEntity entity = new MyDataEntity(name, mail, tel); manager.getTransaction().begin(); try { manager.persist(entity); manager.getTransaction().commit(); } catch(ConstraintViolationException e){ ValidatorFactory factory = Validation.buildDefaultValidatorFactory(); Validator validator = factory.getValidator(); Set<ConstraintViolation<MyDataEntity>> errs = validator.validate(entity); String result = ""; for (ConstraintViolation<MyDataEntity> err : errs) { result += err.getMessage() + "<br>"; } List list = getAllEntity(); request.setAttribute("msg", "<b>Validation Error!</b><br>" + result); request.setAttribute("list", list); request.setAttribute("entity", entity); RequestDispatcher dispatcher = request.getRequestDispatcher("index.jsp"); dispatcher.forward(request,response); } response.sendRedirect("/hello"); }
<< 前へ | 次へ >> |