Отображение сообщения об ошибке в исключении SQLIntegrityConstraintViolationException в Jsf - PullRequest
0 голосов
/ 24 февраля 2012

Я хочу уведомить пользователя о SQLException на моей странице jsf с помощью <h:messages/>

У меня есть следующая функция

 public String createAccount() throws RollbackFailureException,SQLIntegrityConstraintViolationException,Exception{
    String status = "failure";
    EntityManager em = null;
    try {
        logger.log(Level.INFO,"Registering the user");
        utx.begin();
        em = getEntityManager();

        em.persist();
        status = "success";
        utx.commit();

    } catch (Exception ex) {
        try {
            utx.rollback();
        } catch (Exception re) {
            throw new RollbackFailureException("An error occurred attempting to roll back the transaction.", re);
        }
        if (findDetails(details.getId()) != null) {

          throw new SQLIntegrityConstraintViolationException("Your Account cannot be setup as the Login Id already exists.Kindly choose a different Login ID", ex);
        }
        throw ex;
    } finally {
        if (em != null) {
            em.close();
        }

Как показать сообщение об ошибке с помощью jsf ??

Спасибо:)

1 Ответ

2 голосов
/ 24 февраля 2012

Используйте следующее в вашем компоненте поддержки, чтобы добавить сообщение:

import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
...
FacesMessage facesMsg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msg, msg);
FacesContext.getCurrentInstance().addMessage(null, facesMsg);

В качестве альтернативы может быть SEVERITY_WARN или SEVERITY_INFO.Вы можете указать clientId в качестве первого параметра addMessage.Если это null, сообщение является глобальным сообщением и отображается в h:messages.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...