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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Валидация в struts, всевозможние методы валидации данных 
:(
    Опции темы
FcUK
  Дата 22.2.2007, 11:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

Репутация: нет
Всего: 1



Привет.
Вот питаюсь разобратса з валидацией в стратсе. как я понимаю возможно валидировать с помощю метода validate() используя клас
org.apache.struts.action.ActionForm. Еще можно через Validation Framework. То есть подключаем плагин и валидируем через готовие методи описание в validate-rules.xml, используя их в validate.xml.  Тут сразу 2 вопроса
1) Как создать свой валиратор в  Validation Framework?
2) Можно ли использовать метод validate() при валидации через Validation Framework?
Далее..есть еще Dynamic Forms. Как я понял там в бинах нужно огласить все поля форм и потом не нужно никаких методов getXXX() и setXXX(). 
3) Какие недостатки Dynamic Forms?
4) Я так понял что их валидировать можно через Validation Framework. А можно ли через метод  validate()??
И еще нифига не понял про LazyValidatorForm. Напишите плз пару слов о ихз плюсах и недостатках и как их юзать. Спасибо
PM MAIL   Вверх
Scarlett
Дата 28.9.2007, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



кто-то уже кидал тему про валидацию

повторяю для тебя то, что сама делала
Вообще по стратсам есть очень хорошая книга, помимо самого основного сайта, "Struts in Action" издательства Manning
Почитатай

с Dynamic Forms по мне хорошо использовать, когда нет большой необходимости как-то по своему определять форму

 В Struts есть возможность, которая упрощает всю валидацию страниц как на стороне клиента, так и на стороне сервера. 
При этом форма, которая проверяется, должна наследоваться от ValidatorForm и реализовывать интерфейс Serializable.

Для валидации используются специальная библиотека. Про это можно прочитать на официальном сайте стратсов http://struts.apache.org/1.x/faqs/validator.html

Для примера валидации ниже я использовала Dynamic Form, описанный в конфиг-файле как:
Код

<form-bean 
                name="authorizedForm" 
                type="org.apache.struts.validator.DynaValidatorForm">
            <form-property 
                    name="username" 
                    type="java.lang.String"/>
        </form-bean>


Всего-то нужно подключить библиотеку - в WEB-INF в lib дописать файлы jakarta-regexp_1_2.jar, commons-validator.jar, jakarta-oro.jar
Может еще другие понадобятся.
В WEB-INF сохранить стандартный файл с правилами проверки валидатора validator-rules.xml
В нем есть возможность проверки как на стороне клиента, так и сервера
На его основе написать свой файл проверки нужных форм, например, файл validation.xml:
Код

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
    
    <!-- ========================= Default Formset ========================= -->
    <formset>
    
    <!-- Validate authorization form -->
    <form name="authorizedForm">
       <field property="username" depends="required,mask,minlength">
         <msg name="mask" key="authorize.username.maskmsg"/>
         <arg0 key="authorize.userName"/>
         <arg1 name="minlength" key="${var:minlength}" resource="false"/>
         <var>
             <var-name>mask</var-name>
             <var-value>^[a-zA-Z]\w*$</var-value>
         </var>
         <var>
             <var-name>minlength</var-name>
             <var-value>3</var-value>
         </var>
       </field>
    </form>
    
    [I]................другие проверки..........[/I]
    </formset>

</form-validation>



здесь у меня проверка только имени пользователя, правила указываются с помощью регулярных выражений.

В конфиге стратсов подключаем нужный плагин- struts-config.xml:
Код

<struts-config>
..................
    <!-- ========== ValidatorPlugin settings =============================== -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property 
                property="pathnames" 
                value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/>
    </plug-in>
................
</struts-config>


Для отображения ошибок на странице можно воспользоваться кодом на jsp:
Код

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<logic:messagesPresent>
    <table>
        <tr>
         <td colspan="3">
                <html:errors footer="errors.footer" 
                        header="errors.header" 
                        prefix="errors.prefix" 
                        suffix="errors.suffix"/>
            </td>
        </tr>
    </table>
</logic:messagesPresent>

<logic:messagesPresent message="true">
    <table>
        <tr>
         <td colspan="3">
                <html:messages id="message" message="true" 
                        footer="messages.footer" 
                        header="messages.header">
                    <div>
                 <bean:message key="messages.prefix"/>
                 <bean:write name="message"/>
                 <bean:message key="messages.suffix"/>
                 </div>
                </html:messages>
            </td>
        </tr>
    </table>
</logic:messagesPresent>

значение "errors.***" и "messages.***" хранятся в файле свойств, там же хранятся и значения ошибок (те, котоыре закомментины в файле правил валидации).

И последнее - настройка формы на проверку на странице:
Код

..............................
<html:form action="authorize" focus="username" 
                        onsubmit="return validateAuthorizedForm(this);">
                    <table>
                        <tr >
                            <th colspan="2" class="authorize">
                                <bean:message key="authorize.formName"/>
                            </th>
                        </tr>
                        <tr>
                            <th colspan="2">&nbsp;</th>
                        </tr>
                        <tr>
                            <th>
                                <bean:message key="authorize.userName"/>
                            </th>
                             <td align="left">
                                   <html:text property="username" 
                                           size="16" maxlength="18"/>
                             </td>
                        </tr>
                        <tr>
                             <td align="right">
                                 <html:submit>
                                       <bean:message key="button.submit"/>
                                   </html:submit>
                             </td>
                             <td align="left">
                                   <html:reset>
                                     <bean:message key="button.reset"/>
                                   </html:reset>
                             </td>
                        </tr>
                    </table>
                </html:form>
...........................


А для подключения проверки на стороне клиента, т.е. через java-script, в конце всего-то написать:
Код


<html:javascript formName="authorizedForm"/>


и о-ля-ля - все готово.
В общем более подробно смотри ссылку, которую я указала выше smile




PM MAIL   Вверх
Scarlett
Дата 28.9.2007, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



кто-то уже кидал тему про валидацию

повторяю для тебя то, что сама делала
Вообще по стратсам есть очень хорошая книга, помимо самого основного сайта, "Struts in Action" издательства Manning
Почитатай

с Dynamic Forms по мне хорошо использовать, когда нет большой необходимости как-то по своему определять форму

 В Struts есть возможность, которая упрощает всю валидацию страниц как на стороне клиента, так и на стороне сервера. 
При этом форма, которая проверяется, должна наследоваться от ValidatorForm и реализовывать интерфейс Serializable.

Для валидации используются специальная библиотека. Про это можно прочитать на официальном сайте стратсов http://struts.apache.org/1.x/faqs/validator.html

Для примера валидации ниже я использовала Dynamic Form, описанный в конфиг-файле как:
Код

<form-bean 
                name="authorizedForm" 
                type="org.apache.struts.validator.DynaValidatorForm">
            <form-property 
                    name="username" 
                    type="java.lang.String"/>
        </form-bean>


Всего-то нужно подключить библиотеку - в WEB-INF в lib дописать файлы jakarta-regexp_1_2.jar, commons-validator.jar, jakarta-oro.jar
Может еще другие понадобятся.
В WEB-INF сохранить стандартный файл с правилами проверки валидатора validator-rules.xml
В нем есть возможность проверки как на стороне клиента, так и сервера
На его основе написать свой файл проверки нужных форм, например, файл validation.xml:
Код

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
    
    <!-- ========================= Default Formset ========================= -->
    <formset>
    
    <!-- Validate authorization form -->
    <form name="authorizedForm">
       <field property="username" depends="required,mask,minlength">
         <msg name="mask" key="authorize.username.maskmsg"/>
         <arg0 key="authorize.userName"/>
         <arg1 name="minlength" key="${var:minlength}" resource="false"/>
         <var>
             <var-name>mask</var-name>
             <var-value>^[a-zA-Z]\w*$</var-value>
         </var>
         <var>
             <var-name>minlength</var-name>
             <var-value>3</var-value>
         </var>
       </field>
    </form>
    
    [I]................другие проверки..........[/I]
    </formset>

</form-validation>



здесь у меня проверка только имени пользователя, правила указываются с помощью регулярных выражений.

В конфиге стратсов подключаем нужный плагин- struts-config.xml:
Код

<struts-config>
..................
    <!-- ========== ValidatorPlugin settings =============================== -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property 
                property="pathnames" 
                value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/>
    </plug-in>
................
</struts-config>


Для отображения ошибок на странице можно воспользоваться кодом на jsp:
Код

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<logic:messagesPresent>
    <table>
        <tr>
         <td colspan="3">
                <html:errors footer="errors.footer" 
                        header="errors.header" 
                        prefix="errors.prefix" 
                        suffix="errors.suffix"/>
            </td>
        </tr>
    </table>
</logic:messagesPresent>

<logic:messagesPresent message="true">
    <table>
        <tr>
         <td colspan="3">
                <html:messages id="message" message="true" 
                        footer="messages.footer" 
                        header="messages.header">
                    <div>
                 <bean:message key="messages.prefix"/>
                 <bean:write name="message"/>
                 <bean:message key="messages.suffix"/>
                 </div>
                </html:messages>
            </td>
        </tr>
    </table>
</logic:messagesPresent>

значение "errors.***" и "messages.***" хранятся в файле свойств, там же хранятся и значения ошибок (те, котоыре закомментины в файле правил валидации).

И последнее - настройка формы на проверку на странице:
Код

..............................
<html:form action="authorize" focus="username" 
                        onsubmit="return validateAuthorizedForm(this);">
                    <table>
                        <tr >
                            <th colspan="2" class="authorize">
                                <bean:message key="authorize.formName"/>
                            </th>
                        </tr>
                        <tr>
                            <th colspan="2">&nbsp;</th>
                        </tr>
                        <tr>
                            <th>
                                <bean:message key="authorize.userName"/>
                            </th>
                             <td align="left">
                                   <html:text property="username" 
                                           size="16" maxlength="18"/>
                             </td>
                        </tr>
                        <tr>
                             <td align="right">
                                 <html:submit>
                                       <bean:message key="button.submit"/>
                                   </html:submit>
                             </td>
                             <td align="left">
                                   <html:reset>
                                     <bean:message key="button.reset"/>
                                   </html:reset>
                             </td>
                        </tr>
                    </table>
                </html:form>
...........................


А для подключения проверки на стороне клиента, т.е. через java-script, в конце всего-то написать:
Код


<html:javascript formName="authorizedForm"/>


и о-ля-ля - все готово.
В общем более подробно смотри ссылку, которую я указала выше smile




PM MAIL   Вверх
Scarlett
Дата 28.9.2007, 17:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



кто-то уже кидал тему про валидацию

повторяю для тебя то, что сама делала
Вообще по стратсам есть очень хорошая книга, помимо самого основного сайта, "Struts in Action" издательства Manning
Почитатай

с Dynamic Forms по мне хорошо использовать, когда нет большой необходимости как-то по своему определять форму

 В Struts есть возможность, которая упрощает всю валидацию страниц как на стороне клиента, так и на стороне сервера. 
При этом форма, которая проверяется, должна наследоваться от ValidatorForm и реализовывать интерфейс Serializable.

Для валидации используются специальная библиотека. Про это можно прочитать на официальном сайте стратсов http://struts.apache.org/1.x/faqs/validator.html

Для примера валидации ниже я использовала Dynamic Form, описанный в конфиг-файле как:
Код

<form-bean 
                name="authorizedForm" 
                type="org.apache.struts.validator.DynaValidatorForm">
            <form-property 
                    name="username" 
                    type="java.lang.String"/>
        </form-bean>


Всего-то нужно подключить библиотеку - в WEB-INF в lib дописать файлы jakarta-regexp_1_2.jar, commons-validator.jar, jakarta-oro.jar
Может еще другие понадобятся.
В WEB-INF сохранить стандартный файл с правилами проверки валидатора validator-rules.xml
В нем есть возможность проверки как на стороне клиента, так и сервера
На его основе написать свой файл проверки нужных форм, например, файл validation.xml:
Код

<?xml version="1.0" encoding="iso-8859-1"?>
<!DOCTYPE form-validation PUBLIC
          "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.1.3//EN"
          "http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">
<form-validation>
    
    <!-- ========================= Default Formset ========================= -->
    <formset>
    
    <!-- Validate authorization form -->
    <form name="authorizedForm">
       <field property="username" depends="required,mask,minlength">
         <msg name="mask" key="authorize.username.maskmsg"/>
         <arg0 key="authorize.userName"/>
         <arg1 name="minlength" key="${var:minlength}" resource="false"/>
         <var>
             <var-name>mask</var-name>
             <var-value>^[a-zA-Z]\w*$</var-value>
         </var>
         <var>
             <var-name>minlength</var-name>
             <var-value>3</var-value>
         </var>
       </field>
    </form>
    
    [I]................другие проверки..........[/I]
    </formset>

</form-validation>



здесь у меня проверка только имени пользователя, правила указываются с помощью регулярных выражений.

В конфиге стратсов подключаем нужный плагин- struts-config.xml:
Код

<struts-config>
..................
    <!-- ========== ValidatorPlugin settings =============================== -->
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
        <set-property 
                property="pathnames" 
                value="/WEB-INF/validator-rules.xml, /WEB-INF/validation.xml"/>
    </plug-in>
................
</struts-config>


Для отображения ошибок на странице можно воспользоваться кодом на jsp:
Код

<%@ taglib uri="/tags/struts-bean" prefix="bean" %>
<%@ taglib uri="/tags/struts-html" prefix="html" %>
<%@ taglib uri="/tags/struts-logic" prefix="logic" %>
<logic:messagesPresent>
    <table>
        <tr>
         <td colspan="3">
                <html:errors footer="errors.footer" 
                        header="errors.header" 
                        prefix="errors.prefix" 
                        suffix="errors.suffix"/>
            </td>
        </tr>
    </table>
</logic:messagesPresent>

<logic:messagesPresent message="true">
    <table>
        <tr>
         <td colspan="3">
                <html:messages id="message" message="true" 
                        footer="messages.footer" 
                        header="messages.header">
                    <div>
                 <bean:message key="messages.prefix"/>
                 <bean:write name="message"/>
                 <bean:message key="messages.suffix"/>
                 </div>
                </html:messages>
            </td>
        </tr>
    </table>
</logic:messagesPresent>

значение "errors.***" и "messages.***" хранятся в файле свойств, там же хранятся и значения ошибок (те, котоыре закомментины в файле правил валидации).

И последнее - настройка формы на проверку на странице:
Код

..............................
<html:form action="authorize" focus="username" 
                        onsubmit="return validateAuthorizedForm(this);">
                    <table>
                        <tr >
                            <th colspan="2" class="authorize">
                                <bean:message key="authorize.formName"/>
                            </th>
                        </tr>
                        <tr>
                            <th colspan="2">&nbsp;</th>
                        </tr>
                        <tr>
                            <th>
                                <bean:message key="authorize.userName"/>
                            </th>
                             <td align="left">
                                   <html:text property="username" 
                                           size="16" maxlength="18"/>
                             </td>
                        </tr>
                        <tr>
                             <td align="right">
                                 <html:submit>
                                       <bean:message key="button.submit"/>
                                   </html:submit>
                             </td>
                             <td align="left">
                                   <html:reset>
                                     <bean:message key="button.reset"/>
                                   </html:reset>
                             </td>
                        </tr>
                    </table>
                </html:form>
...........................


А для подключения проверки на стороне клиента, т.е. через java-script, в конце всего-то написать:
Код


<html:javascript formName="authorizedForm"/>


и о-ля-ля - все готово.
В общем более подробно смотри ссылку, которую я указала выше smile




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.0537 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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