powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по Struts.
7 сообщений из 7, страница 1 из 1
Вопрос по Struts.
    #33202560
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос по Struts.
У меня в форме переменное число текстовых полей. Мне нужно сделать проверку их содержимого чтобы все были целые и больше нуля. Как это осуществить в классе ActionForm или может в его дочерных классах?
Если число постоянное полей постоянное всё просто. А вот так не знаю. Возможно ли это и как?


P.S. Что такое commons-validator?
Заранее благодарен.
...
Рейтинг: 0 / 0
Вопрос по Struts.
    #33202628
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
svbyВопрос по Struts.
У меня в форме переменное число текстовых полей. Мне нужно сделать проверку их содержимого чтобы все были целые и больше нуля. Как это осуществить в классе ActionForm или может в его дочерных классах?
Если число постоянное полей постоянное всё просто. А вот так не знаю. Возможно ли это и как?
Как они задаются, приведи пример? А проверять - да, можно в форме или же в action'е.

svbyЧто такое commons-validator?
http://jakarta.apache.org/commons/validator/
A common issue when receiving data either electronically or from user input is verifying the integrity of the data.
...
Рейтинг: 0 / 0
Вопрос по Struts.
    #33202663
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Denis Popov
Как они задаются, приведи пример? А проверять - да, можно в форме или же в action'е.

Например в интернет магазине выводится сделаные заказы на книги. Название книги, описание, количество каждой книги. Количество каждой книги пользователь может изменять. Каличество каждой книги находтся в текстовом теге. Нужно провереть изменёное значение количества каждой книг. Так как сколько книг разных видов заказал не известно я незнаю как сделать ActionForm для этой формы.
...
Рейтинг: 0 / 0
Вопрос по Struts.
    #33202696
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно сделать в форме атрибут типа Collection или List:
Код: plaintext
1.
2.
3.
 private  List books =  new  LinkedList();
 public  List getBooks() {  return  books; }
 public   void  setBooks(List books) {  this .books = books; }

Элементами списка будут экземпляры некоего класса Book . В action'е перед показом страницы ты заполняешь этот список, на странице показываешь примерно как:
Код: plaintext
1.
2.
3.
<logic:iterate id="book" name="testForm" property="books" indexId="index" >
  <html:text property='<%= "book[" + index + "].amount" %>'/><br>
</logic:iterate>

amount - атрибут класса Book . По submit'y формы можешь проверить данные. В чем именно проблема?
...
Рейтинг: 0 / 0
Вопрос по Struts.
    #33202859
svby
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема именна проверки, а не построения страницы. Как я понимаю в классе ActionForm я должен реализовать методы set и get для переменных запроса. Потом в методе validate класса ActionForm я должен осуществить проверку этих переменных запроса. Если их количество не известно то что делать.
P.S. Карзина для данных купленых книг у меня организована как HashMap, а
не Link.
...
Рейтинг: 0 / 0
Вопрос по Struts.
    #33203967
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так и проверяй либо на форме, что-то вроде:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 public  ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
    ActionErrors errors =  super .validate(mapping, request);
    MessageResources resources = ((MessageResources) request.getAttribute(Globals.MESSAGES_KEY));
     for  (Iterator it = books.iterator(); it.hasNext();) {
      Book book = (Book) it.next();
       try  {
        Integer.parseInt(book.getCount().toString());
      }  catch  (NumberFormatException e) {
        errors.add(
          ActionMessages.GLOBAL_MESSAGE,
           new  ActionMessage("errors.integer", resources.getMessage("book.count"))
        );
      }
    }
     return  errors;
  }
List или HashMap - непринципиально. Либо можешь проверить в методе execute твоего action'а:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
 public  ActionForward execute(ActionMapping mapping,
                             ActionForm form,
                             HttpServletRequest request,
                             HttpServletResponse response)
   throws  Exception {
  HttpSession session = request.getSession();

  ActionMessages errors =  new  ActionMessages();
  
  // Проверка, если ошибка - заполняем errors, например
  errors.add(ActionMessages.GLOBAL_MESSAGE,  new  ActionMessage("book.count"));
  
  ...
  
   if  (!errors.isEmpty()) {
      saveMessages(request, errors);
    ActionForward actionForward = mapping.getInputForward();
     return  actionForward;
  }  
  
  ...

}
...
Рейтинг: 0 / 0
Вопрос по Struts.
    #33204198
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка:
Код: plaintext
1.
2.
//saveMessages(request, errors);
saveErrors(request, errors);
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Вопрос по Struts.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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