powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Client & server side validation
24 сообщений из 24, страница 1 из 1
Client & server side validation
    #33130146
ффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
struts-config.xml
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
<struts-config>
    <form-beans>
        <form-bean name="in" type="ecologist.action.InForm" />
    </form-beans>
    <action-mappings>
        <action path="/in" type="ecologist.action.InAction" scope="request" name="in" input="/in.jsp" validate="true" >
            <forward name="failure" path="/in.jsp" />
            <forward name="success" path="/in.do" />
        </action>
    </action-mappings>
    <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>

InForm.java
Код: plaintext
1.
2.
3.
4.
5.
6.
 public   class  InForm  extends  ValidatorForm {
...
 public  ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
...
}
}

почему не вызывается метод validate(...) в InForm.java ?
...
Рейтинг: 0 / 0
Client & server side validation
    #33130804
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а вам не надо вызывать метод validate в форме. это делает валидатор сам, руководствуясь файлами :validator-rules.xml, validation.xml
вам нужно только заполнить validation.xml
...
Рейтинг: 0 / 0
Client & server side validation
    #33131430
ффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
johannaа вам не надо вызывать метод validate в форме. это делает валидатор сам, руководствуясь файлами :validator-rules.xml, validation.xml
вам нужно только заполнить validation.xml

нет, ну ясное дело что он сам должен вызываться, только он не вызывается. валидатор работает, а вот метод validate не вызывается...
не могу никак понять почему...
...
Рейтинг: 0 / 0
Client & server side validation
    #33131451
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не, я имею ввиду, chto этот метод в форме(ActionForm) вызывается только без плагина валидатора. поэтому метод validate в вашей форме вобще не нужен.
если вы не пользуетесь plugin валидатором, тогда другое дело, тогда вызывается метод validate формы.
...
Рейтинг: 0 / 0
Client & server side validation
    #33131493
ффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
johannaне, я имею ввиду, chto этот метод в форме(ActionForm) вызывается только без плагина валидатора. поэтому метод validate в вашей форме вобще не нужен.
если вы не пользуетесь plugin валидатором, тогда другое дело, тогда вызывается метод validate формы.

хм... тогда всё понятно.
а как тогда сдалать проверку введённых данных на стороне сервера?
...
Рейтинг: 0 / 0
Client & server side validation
    #33131499
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
in Action
...
Рейтинг: 0 / 0
Client & server side validation
    #33131511
ффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
johannain Action

ок. спасибо.
...
Рейтинг: 0 / 0
Client & server side validation
    #33131632
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
johanna wrote:
> не, я имею ввиду, chto этот метод в форме(ActionForm) вызывается только
> без плагина валидатора. поэтому метод validate в вашей форме вобще не нужен.
> если вы не пользуетесь plugin валидатором, тогда другое дело, тогда
> вызывается метод validate формы.

У меня этот метод вызывается в любом случае, и с плагином, и без него. Т.е. при желании можно поместить проверку данных
в 3-х местах: у клиента через javascript, в ValidatorForm.validate() и Action.execute().
Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Client & server side validation
    #33131658
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis Popov
У меня этот метод вызывается в любом случае, и с плагином, и без него.

Точнее, зависит от следующего, фрагмент struts-config.xml:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
    
<action path="/testGo"
        type="hall.action.TestGoAction"
        name="testForm"
        scope="request"
        validate="true" 
        input="/struts/testForm.jsp">
</action>

Если поставить validate="false", то ValidatorForm.validate() вызываться не будет.
...
Рейтинг: 0 / 0
Client & server side validation
    #33131819
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
правильно этот метод вызывается в ValidatorForm. Но если вы в своей форме имплеминтируете validate,то этим вы переписываете
validate в ValidatorForm. Т.е. если вы в своей форме MyForm пользуетесь validate, то вам самим надо заботиться о том, чтоб validator byl vyzvan
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
  public  ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
/* 143*/        javax.servlet.ServletContext application = getServlet().getServletContext();
/* 144*/        ActionErrors errors =  new  ActionErrors();
/* 146*/        Validator validator = Resources.initValidator(mapping.getAttribute(),  this , application, request, errors, page);
/* 152*/         try  {
/* 152*/            validatorResults = validator.validate();
                }
/* 154*/         catch (ValidatorException e) {
/* 154*/            log.error(e.getMessage(), e);
                }
/* 157*/         return  errors;
            }
вот эти все надо в свой метод засовывать
ну и вобще, если пользоваться валидатором, то к чему на форме какие то валидирунги производить? Все, что касается business logic в форму не относитcя,
все остальное может проверить валидатор
...
Рейтинг: 0 / 0
Client & server side validation
    #33131903
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
johannaправильно этот метод вызывается в ValidatorForm. Но если вы в своей форме имплеминтируете validate,то этим вы переписываете
validate в ValidatorForm. Т.е. если вы в своей форме MyForm пользуетесь validate, то вам самим надо заботиться о том, чтоб validator byl vyzvan

Можно так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 public  ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    // Perform validator framework validations
    ActionErrors errors =  super .validate(mapping, request);
    MessageResources resources = ((MessageResources) request.getAttribute(Globals.MESSAGES_KEY))
     if  ( this .label ==  null  || "".equals( this .label)) {
      errors.add(
        ActionMessages.GLOBAL_MESSAGE,  new  ActionMessage(
          "errors.required", resources.getMessage("testForm.label")
        )
      );
    }
     return  errors;
  }
Это для примера, проверяется обязательность атрибута label. Но это же самое (обязательность) можно проверить еще на самой странице, а здесь предоставляется возможность провести более сложные проверки.

johanna
ну и вобще, если пользоваться валидатором, то к чему на форме какие то валидирунги производить? Все, что касается business logic в форму не относитcя, все остальное может проверить валидатор
Для вызова этого метода нужно, чтобы данные формы как минимум были посланы на сервер, ошибка же при проверке на странице обломает сам submit формы, сервер об этом не узнает и лишний раз не "напряжется":)
Код: plaintext
1.
<html:form action="/testGo" onsubmit="return validateTestForm(this)">
...
Рейтинг: 0 / 0
Client & server side validation
    #33131946
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какие более сложные проверки?
более сложные проверки на business logic можно на Action сделать, куда они и принадлежат.
со всем остальным валидатор прекрасно справляется
...
Рейтинг: 0 / 0
Client & server side validation
    #33131972
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
johannaкакие более сложные проверки?
более сложные проверки на business logic можно на Action сделать, куда они и принадлежат.
со всем остальным валидатор прекрасно справляется
"более сложные проверки" по сравнению с клиентским javascript'ом. Я сейчас так и делаю: что-то через javascript на самой форме, что-то в Action.execute(). Form.validate() пока не пользуюсь, поскольку как-то не сформулировалось представление, будет ли лучше, если что-то перенесется из execute() в validate(). В любом случае это уже проверки на серверной стороне, клентский javascript на форме их дополняет, и все это может использоваться одновременно.
...
Рейтинг: 0 / 0
Client & server side validation
    #33131984
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проверка в Action это и есть серверная сторона, и если пользовать плагином, то не стоит нагромождать огород и начинать имплементировать метод
validate in MyForm.
Нарушается принцип responsibility-кто за что отвечает, а это уже не очень красивый дизайн написанной программы.
...
Рейтинг: 0 / 0
Client & server side validation
    #33132366
ффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
не могу понять что я делаю не так. почему у меня не вызывается ни Action.execute, ни ValidatorForm.validate?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
 public   class  InAction  extends  Action {
         public  ActionForward execute(
        ActionMapping mapping,
        ActionForm form,
        HttpServletRequest request,
        HttpServletResponse response) {

             return  mapping.findForward("failure");
        }
}

тут всё равно что вставлять "failure" или "success" - результат одинаковый...

может кто мой проект целиком глянет?
...
Рейтинг: 0 / 0
Client & server side validation
    #33132375
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
давай,
завтра утром посмотрю, сейчас уже поздно :)
...
Рейтинг: 0 / 0
Client & server side validation
    #33132385
ффф
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
куда давать то? :)
...
Рейтинг: 0 / 0
Client & server side validation
    #33132786
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да хоть на мыло, хоть сюда куски выложи: struts-config.xml, ActionForm, Action, jsp etc.
...
Рейтинг: 0 / 0
Client & server side validation
    #33133518
Фотография johanna
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
отвечу завтра если успею, сейчас к сожалению времени нет.
...
Рейтинг: 0 / 0
Client & server side validation
    #33135929
Jlexa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня какие-то глюки с версией validator plugin. Почему-то мой struts 1.2.7 при разборе validator.xml выдаёт сообщения об таких ошибках, как будто он понимает только validator 1.0 :\

Как известно, версия 1.0 не поддерживает resource bundles, в версиях 1.1.3 и 1.2.0 с эти гораздо лучше. Проще говоря, в 1.0 пишут
<arg0 key="key.yo"/>
а в 1.1 -
<arg bundle="best.bundle" key="key.yo" position="0"/>
Разница очевидна.

В том и вопрос: как подключить версию Validator > 1.0? Или, может,и в этой версии можно как-то выдавать сообщения, лежащие не в application.properties?
...
Рейтинг: 0 / 0
Client & server side validation
    #33136518
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/150154&hl
попробуй изменить названия паблик ресурсов.

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Client & server side validation
    #33136775
Jlexa_guest
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
riman
/topic/150154&hl
попробуй изменить названия паблик ресурсов.

Posted via ActualForum NNTP Server 1.2
Цитата из validator.xml
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

DTD для 1.0 у меня на компьютере вообще нет. Хотелось бы знать, откуда он её берёт. :\\
...
Рейтинг: 0 / 0
Client & server side validation
    #33137384
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Цитата из validator.xml
<!DOCTYPE form-validation PUBLIC
"-//Apache Software Foundation//DTD Commons Validator Rules Configuration
1.0//EN"
"http://jakarta.apache.org/commons/dtds/validator_1_1_3.dtd">

DTD для 1.0 у меня на компьютере вообще нет. Хотелось бы знать, откуда он её
берёт. :\
а так:

<!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">

Posted via ActualForum NNTP Server 1.2
...
Рейтинг: 0 / 0
Client & server side validation
    #33140027
Jlexa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
riman: а так работает, спасибо. Умудрился не заметить, что это тоже нужно исправить.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Client & server side validation
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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