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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Struts validation 
:(
    Опции темы
seth
Дата 8.9.2006, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



есть такая вот проверка в форме
Код

 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();
        if (firstName==null || firstName.trim().equals("")){
        errors.add("firstName", new ActionError("userRegistration.firstName.problem"));
        }
        return errors;
    }

она почему то запускается при первой загрузке страницы т.е. выводится сообщение об ошибке - что где надо прописать?



--------------------
PM MAIL   Вверх
Maksym
Дата 9.9.2006, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


.
***


Профиль
Группа: Участник Клуба
Сообщений: 1456
Регистрация: 19.8.2005
Где: Odessa, Black Sea

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



seth
firstName -- инициализируется конструкторе или при объявлении? Запости полный код класса формы.

PM MAIL   Вверх
Nobody
Дата 9.9.2006, 15:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

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



seth, добавь условие, при котором должна вызываться валидация.


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
seth
Дата 9.9.2006, 15:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Цитата

seth, добавь условие, при котором должна вызываться валидация.

можно поподробнее как это сделать??

Вот исходник класса формы
Код

import org.apache.struts.action.*;

import javax.servlet.http.HttpServletRequest;
public class UserRegistrationForm extends ActionForm {
    private String firstName;
    private String lastName;
    private String userName;
    private String password;
    private String passwordCheck;
    private String email;
    private String phone;
    private String fax;
    private boolean registered;    
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        firstName=null;
        lastName=null;
        userName=null;
        password=null;
        passwordCheck=null;
        email=null;
        phone=null;
        fax=null;
        registered=false;
    }
    public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();
        if (firstName==null || firstName.trim().equals("")){
        errors.add("firstName", new ActionError("userRegistration.firstName.problem"));
        }
        return errors;
    }
    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public String getPasswordCheck() {
        return passwordCheck;
    }

    public void setPasswordCheck(String passwordCheck) {
        this.passwordCheck = passwordCheck;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getFax() {
        return fax;
    }

    public void setFax(String fax) {
        this.fax = fax;
    }

    public boolean isRegistered() {
        return registered;
    }

    public void setRegistered(boolean registered) {
        this.registered = registered;
    }


}



--------------------
PM MAIL   Вверх
Nobody
Дата 9.9.2006, 20:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 838
Регистрация: 25.8.2003
Где: Россия, Москва

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



добавь, например

Код

  private String action;
  public void setAction(final String v) {
    this.action = v;
  }
  public String getAction() {
    return this.action;
  }


измени validate:

Код

  public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    if ("save".equals(this.action)) {
      ...
    }
  }


и добавь на страницу хидден-поле с action="save"

В экшене ты ведь как-то различаешь, был ли это просто запрос на показывание страницы или сабмит формы.


--------------------
Алгоритм помещения вопросов на форуме
Выражаем спасибо вот ТАК
Use the Source, Luke!
PM MAIL WWW ICQ   Вверх
seth
Дата 10.9.2006, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Начала выскакивать такая ошибка - хотя файл вроде на месте...
[ERROR] 54:29(ActionServlet.java:initServlet:1147)
The /WEB-INF/web.xml was not found.

пытался все вернуть обратно - ничего не получается... smile

Это сообщение отредактировал(а) seth - 10.9.2006, 17:08


--------------------
PM MAIL   Вверх
seth
Дата 10.9.2006, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Вобщем ту ошибку решил (там была парралельно проблема с log4j)
в jsp добавил это
<html:hidden property="action" value="save"/>
и все описал как советовали

результат аналогичный... (т.е. проверка всеравно происходит)



--------------------
PM MAIL   Вверх
JavaCoder
Дата 13.9.2006, 12:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Советую подобные проверки делать с помощью JavaScript.
Вы уверены что верно прописан мапинг?
Какая версия Стратс используется? 1.2.9?
PM MAIL   Вверх
BlackD
Дата 14.4.2007, 02:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(seth @ 8.9.2006,  22:51)
Код

 public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        ActionErrors errors = new ActionErrors();
        if (firstName==null || firstName.trim().equals("")){
        errors.add("firstName", new ActionError("userRegistration.firstName.problem"));
        }
        return errors;
    }


if (firstName==null) - на странице присутствует <html:text property="firstName" /> ?

Пожалуйста, приведи код страницы, с которой связан bean UserRegistrationForm. И struts-config тоже.

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

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

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


 




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


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

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