2013-12-13 3 views
7

У меня есть веб-приложение Java Server Faces, и я не уверен, как обрабатывать проверку.Java Server Faces: проверка только в области бизнес-логики

На мой взгляд, валидация должна быть выполнена в логическом уровне бизнеса. Уровень бизнес-логики используется внутри веб-презентации (jsf) и REST-API.

В настоящий момент я выполняю также проверку внутри слоя jsf с предоставленными валидаторами. Я думаю, что это в большинстве случаев только дублирование кода. Есть ли способ избежать дублирования кода? Является ли java-сервером возможность использовать исключения проверки, которые я бросаю внутри уровня бизнес-логики?

ответ

5

Для этого случая была изобретена проверка бина.

Вы комментируете свои сущности с ограничениями, и эти ограничения будут выполняться как вашей бизнес-логикой (через EJB, CDI и/или JPA), так и JSF.

Для небольшого количества проверок, которые вы не можете выразить посредством проверки бина, но действительно связаны с бизнесом; да, бросьте исключение, поймайте его в своей фонотеке и установите соответствующее сообщение Faces (подсказка: используйте OmniFaces' Messages, чтобы это стало проще). Точно так же для небольшого количества валидаций, которые вы не можете выразить с помощью проверки Bean и которые ориентированы строго ориентированно; используйте собственные валидаторы JSF.

Смежные вопросы