Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отобразить ошибку не забиндинную на поле 
V
    Опции темы
garbuz
Дата 28.6.2009, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



Spring MVC, в методе onBindAndValidate вызываю валидацию каптчи. Как отобразить ошибку, не ассоциированную с command object?
Код

 protected void onBindAndValidate(HttpServletRequest request, Object command, BindException errors) throws Exception {
        validateCaptcha(request, errors);
    }

    protected void validateCaptcha(HttpServletRequest request, BindException errors){
        boolean isResponseCorrect = false;

        //remenber that we need an id to validate!
        String captchaId = request.getSession().getId();
        //retrieve the response
        String response = request.getParameter(captchaResponseParameterName);
        //validate response
        try {
            if(response != null){
                isResponseCorrect = captchaService.validateResponseForID(captchaId, response);
            }
        } catch (CaptchaServiceException e) {
            //should not happen, may be thrown if the id is not valid
            e.printStackTrace();
        }

        if(!isResponseCorrect){
            //prepare object error, captcha response isn`t valid
            String objectName = "captcha";
            String[] codes = {"captchaerror"};
            Object[] arguments = {};
            String defaultMessage = "Wrong captcha text!";
            ObjectError oe = new ObjectError(objectName, codes, arguments, defaultMessage);
            errors.addError(oe);
               }
    }


В случае ошибки валидации создается объект ObjectError, кладется в BindException, как отобразить ошибку на странице? Данная ошибка не ассоциирована с комманд объект и поэтому form:errors path="..." тут не катит?

Добавлено через 14 минут и 43 секунды
Решение найдено.
Код

 <tr>
            <td>Суперсекретный код<br>
                <c:url var="captchPath" value="/captcha.htm"/>
                <img src="${captchPath}"/>
            </td>
            <td><input type="text" name="j_captcha_response"/></td>
            <td style="color:red;">
                <spring:hasBindErrors name="newUser">
                    <c:if test="${not empty errors.globalErrors}">
                        <c:forEach items="${errors.globalErrors}" var="error">
                            <c:out value="${error.defaultMessage}"/>
                        </c:forEach>
                    </c:if>
                </spring:hasBindErrors>

            </td>
        </tr>

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0393 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.