powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Struts. Валидация динамической формы
5 сообщений из 5, страница 1 из 1
Struts. Валидация динамической формы
    #34035876
iis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iis
Гость
Использую Struts 1.2.9.
Форма редактирования формируется динамически. Т.е. нельзя заранее определить набор параметров в запросе. Хотя на каждый параметр валидацию установить необходимо. Подскажите как это можно сделать?
А то уже думаю расширять
Код: plaintext
org.apache.struts.validator.ValidatorForm
http://www.sql.ru/forum/images/happy.gif
...
Рейтинг: 0 / 0
Struts. Валидация динамической формы
    #34035916
iis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iis
Гость
Форма ввода создается с помощью XML+XSLT в зависимости от прав пользователя скрываются определенные поля и тп. Валидатор при проверке, если какой-либо параметр отсутствует в запросе (а для поля прописано "required") ведет себя так как-будто это поле не заполнено. Нужно чтоб такие поля не учавствовали в валидации.
...
Рейтинг: 0 / 0
Struts. Валидация динамической формы
    #34038352
iis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iis
Гость
Все разобрался. Если кого интересует могу рассказать. Пришлось смотреть в код валидатора, иначе никаких шансов :-)
...
Рейтинг: 0 / 0
Struts. Валидация динамической формы
    #34038640
Макарон
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
поделись плиз решением...
...
Рейтинг: 0 / 0
Struts. Валидация динамической формы
    #34040678
iis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
iis
Гость
Макаронподелись плиз решением...
Конечно. Не жалко :-)
Все просто. Берем
Код: plaintext
org.apache.struts.validator.LazyValidatorForm
. Расширяем ее: переопределяем метод validate, таким образом:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
     public  ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {


        String validationKey = getValidationKey(mapping, request);
        ServletContext context = getServlet().getServletContext();
        ActionErrors errors =  new  ActionErrors();
        Validator validator =
                Resources.initValidator(validationKey,  this , context, request, errors,  0 );

        log.debug("Validate key = " + getValidationKey(mapping, request));
        Enumeration en = request.getParameterNames();

             while  (en.hasMoreElements()) {
                String paramName = (String)en.nextElement();
                validator.setFieldName(paramName);
                log.debug("Set parameter " + paramName + "for validate");
                 try  {
                    validator.validate();
                }  catch  (ValidatorException e) {
                    e.printStackTrace();
                    log.error(e.getMessage(), e);
                }
            }

         return  errors;
    }
И этот класс указываем в аттрибуте type тега form-bean файла struts-config.xml
Конечно, не самое оптимальное решение. Есть куда улучшать :-) Может кто подскажет более удачное решение.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Struts. Валидация динамической формы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]