powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / <html:checkbox> - хавно какое то.
5 сообщений из 5, страница 1 из 1
<html:checkbox> - хавно какое то.
    #33678701
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давно хотел спросить кто как с этим чебксом работает.
Допустим есть:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 public   class  MyForm  extends  ActionForm{
   private  String mychckbx;
   public   void  setMychckbx(String value){
     if (value== null ){
      mychckbx="false";
    }  else {
      mychckbx=value;
    }

  }
   public  String getMychckbx(){
     return  mychckbx;
  }
   public   void  reset(ActionMapping actionMapping, HttpServletRequest httpServletRequest){
    mychckbx=getStatusFromDatabase();
  }

и хтмл форма:
Код: plaintext
1.
2.
3.
<html:form action="/someAction.do">
  <html:checkbox property="mychckbx"/>
</html:form>

Если getStatusFromDatabase()=true, то форма отображается с заранее установленной галкой, если эту галку снять и отсабмитить форму, то в БД попадёт всё тот же true. Если же getStatusFromDatabase()=false, то всё работает так как надо.

Из документации к стратс-тэгам:
struts-html doc
WARNING: In order to correctly recognize unchecked checkboxes, the ActionForm bean associated with this form must include a statement setting the corresponding boolean property to false in the reset() method.


Т.е. я должен принудительно выставлять всем checkbox'ам false, но мне нужно, чтобы форма заполнялась именно теми состояниями checkbox'ов, которые установлены в БД. Чтобы форма нормально заполнялась, и в то же время нормально отрабатывались unchecked checkboxes я добавляю в Action.execute() следующее:
Код: plaintext
1.
2.
3.
4.
String mychckbx=httpServletRequest.getParameter("mychckbx");
 if (mychckbx== null ){
  actionForm.setMychckbx("false");
}
А как у вас это сделано?
...
Рейтинг: 0 / 0
<html:checkbox> - хавно какое то.
    #33678974
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
/topic/276775#2506047 Со слов "С checkbox\'ами одна проблема".
...
Рейтинг: 0 / 0
<html:checkbox> - хавно какое то.
    #33679056
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovС checkbox'ами одна проблема - если на странице они скинуты, то просто не будут указаны в пришедшем request'е. Поэтому неплохо в форму дописать метод по сбрасыванию их всех, а нужные будут установлены:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
 public   class  TestForm   extends  ValidatorForm {

   private  List items;

  ...
  
   public   void  reset(ActionMapping mapping, HttpServletRequest request) {
     for  (Iterator it = items.iterator(); it.hasNext();) {
      MyClass myClass = (MyClass)it.next();
      // Предположим, что есть свойство boolean myClass.myValue
      myClass.myValue = false;
    }
  }
}

Не понял. Как будут установлены нужные?
Ещё раз. Мне нужна prepopulated form. Все данные для этой формы берутся из БД, в том числе и для checkbox'a. Если чекбокс был показан с установленной галкой, то если её убрать и нажать сабмит, состояние чекбокса не изменяется.
В этом случае при сабмите формы вызывается метод setMychckbox(String value), но value равно тому значению, которое было считано из БД (true), а не null (как вроде бы и должно было быть?).
...
Рейтинг: 0 / 0
<html:checkbox> - хавно какое то.
    #33679213
Фотография Denis Popov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При submit'е формы, если флаг был сброшен, то метод setMychckbx() не вызовется вообще , поэтому проверки вроде value==null в нем бесполезны. ИМХО там все достаточно просто: пришел request c параметрами, для каждого пришедшего в request'е параметра вызывается соответствующий setter формы. Но если параметра нет (для сброшенного флага), то ничего для него и не вызовется.
...
Рейтинг: 0 / 0
<html:checkbox> - хавно какое то.
    #33679222
Фотография riman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Denis PopovПри submit'е формы, если флаг был сброшен, то метод setMychckbx() не вызовется вообще , поэтому проверки вроде value==null в нем бесполезны. ИМХО там все достаточно просто: пришел request c параметрами, для каждого пришедшего в request'е параметра вызывается соответствующий setter формы. Но если параметра нет (для сброшенного флага), то ничего для него и не вызовется.
Да, метод не вызывается, я напутал. Ладно, пусть работает так как есть. :)
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / <html:checkbox> - хавно какое то.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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