Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / bean, как лучше сделать? / 25 сообщений из 25, страница 1 из 1
22.09.2006, 11:21:25
    #34005442
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
Здравствуйте уважаемые!
создал бин с кучей "гетов" и "сетов" и еще одним "основным методом".
хочу после чтобы после вызова "сетов" из-вне вызываллся этот "основной метод" благодоря чему будут установлены необходимые змне значения которые я смогу получить при помощи "гетов".вызывать этот "основной метод" в гет-методах считаю неправильным, сделать масив и возвращать все при помощи одного "гет" очень сложно.я конечно понимаю что выразился достаточно коряво , но может кто-нить что-нить понял и подскажет как мне осуществить такое!спасибо.
...
Рейтинг: 0 / 0
22.09.2006, 11:31:40
    #34005486
peter6636
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
babkaЗдравствуйте уважаемые!
создал бин с кучей "гетов" и "сетов" и еще одним "основным методом".
хочу после чтобы после вызова "сетов" из-вне вызываллся этот "основной метод" благодоря чему будут установлены необходимые змне значения которые я смогу получить при помощи "гетов".вызывать этот "основной метод" в гет-методах считаю неправильным, сделать масив и возвращать все при помощи одного "гет" очень сложно.я конечно понимаю что выразился достаточно коряво , но может кто-нить что-нить понял и подскажет как мне осуществить такое!спасибо.
нифига почти не понял,но думаю сделать нужно так:
Создаешь ArrayList или Vector, создаешь объект своего Бина,заполняешь его данными,потом пихаешь этот бин в созданный массив и так сколько нужно.
Потом в цикле достаешь эти бины с разыми значениями в гетах и юзаешь
...
Рейтинг: 0 / 0
22.09.2006, 11:59:14
    #34005623
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
попытаюсь написать по нагляднее и попроще)
бин
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
 public   class  bean {
 private  String a;
 private  String b;
 private  String cd;
 private  String ef;

   private   void  load(){
    cd=a+b;
    ef=cd-a*b;
  }
   public   void  setA(string s){
     a=s;
  }
   public   void  setA(string s){
     b=s;
  }
    public  String getCd(){
       return  cd;
   }
    public  String getCd(){
       return  ef
   }   
}

страничка использующая бин
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
<jsp:useBean id="BEAN"  class ="bean" scope="page">
        <jsp:setProperty name="BEAN" property="a" value="<%=K%>"/>
        <jsp:setProperty name="BEAN" property="b" value="<%=N%>"/>
    </jsp:useBean>

test: <jsp:getProperty name="BEAN" property="cd"/>
test: <jsp:getProperty name="BEAN" property="ef"/>

надо чтобы cd\ef были уже с после обработки load
...
Рейтинг: 0 / 0
22.09.2006, 12:12:49
    #34005689
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
А вот так нельзя?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
 public   class  bean {
 private  String a;
 private  String b;
 private  String cd;
 private  String ef;

   private   void  load(){
    cd=a+b;
    ef=cd-a*b;
  }
   public   void  setA(string s){
     a=s;
     load();
  }
   public   void  setB(string s){
     b=s;
     load();
  }
    public  String getCd(){
       return  cd;
   }
    public  String getEf(){
       return  ef
   }   
}

П.С. имена классов пишутся с большой буквы.
...
Рейтинг: 0 / 0
22.09.2006, 12:50:11
    #34005854
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
хочу вызывать load только 1 раз
...
Рейтинг: 0 / 0
22.09.2006, 12:55:55
    #34005880
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
пришел просвет в мое тупоумие
может нада попробывать так
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<jsp:useBean id="BEAN"  class ="bean" scope="page">
        <jsp:setProperty name="BEAN" property="a" value="<%=K%>"/>
        <jsp:setProperty name="BEAN" property="b" value="<%=N%>"/>
    </jsp:useBean>

<%BEAN.load();%>


test: <jsp:getProperty name="BEAN" property="cd"/>

...
Рейтинг: 0 / 0
22.09.2006, 12:59:19
    #34005901
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
вернее
в бин добавить
Код: plaintext
1.
2.
3.
  public   void  qqq(){
        load();
    }
и
Код: plaintext
1.
<%BEAN.qqq();%>
...
Рейтинг: 0 / 0
22.09.2006, 14:06:31
    #34006243
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
незнаю на сколько это правильно , но работает.
...
Рейтинг: 0 / 0
22.09.2006, 14:54:44
    #34006434
ТимоН
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
Мне кажется это немного неправильный подход. Можно обернуть этот бин каким нибудь классом.
Код: plaintext
1.
2.
3.
4.
5.
6.
 class  someClass{
 private  bean b;
bean getBean(){
 b.load();
  return  b;
}
}
что нибудь типа этого. Неочень красиво перед использованием бина руками вызывать некоторые init методы. А почему вы нехотите несколько раз вызывать ваш метод load, в каждом геттере?
...
Рейтинг: 0 / 0
22.09.2006, 17:09:34
    #34006946
Кувалдин Роман
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
babkaхочу вызывать load только 1 раз

Сделай флаг
...
Рейтинг: 0 / 0
23.09.2006, 07:22:54
    #34007594
cooluser
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
В биннах сеттеры и геттеры должны выполнять установку/получение значений полей класса. Не более того. Т.е. какой-либо другой логики в сеттерах и геттерах быть не должно.
...
Рейтинг: 0 / 0
25.09.2006, 09:54:04
    #34008872
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
руководствовался другой мыслью:
"..какой смысл крутить один и тот же метод перед каждым геттером?только время работы увеличивать...".

2cooluser А это, что к.н. шаблонное правило?

что-то про класс не догоню...помоему вызов этого присловутого метода останется.я не прав?я не так понял идею?!
...
Рейтинг: 0 / 0
25.09.2006, 12:48:14
    #34009459
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
babkaхочу вызывать load только 1 раз
Совсем запутал/ Может load() вызывать в конструкторе?

2cooluser Это конечно очень правильно(как пишут в книжках). Но лично у меня редко получается так делать.
Например если при сете надо оповестить обсерверов об изменении что делать??
...
Рейтинг: 0 / 0
25.09.2006, 13:06:41
    #34009511
babk2a
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
2LINUXER : конструктор отпадает т.к. вызывается до сеттеров, мне это не надо!

где стало "совсем"?)) я только сказал, что непонимаю, что будет(какой смысл) если бин обернуть классом
...
Рейтинг: 0 / 0
25.09.2006, 13:10:25
    #34009525
Timm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
babk2a2LINUXER : конструктор отпадает т.к. вызывается до сеттеров, мне это не надо!

где стало "совсем"?)) я только сказал, что непонимаю, что будет(какой смысл) если бин обернуть классом
Зачем? чем приведенный пример не устраивает?
...
Рейтинг: 0 / 0
25.09.2006, 13:14:13
    #34009539
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
еще раз:
1)вызовов бина
2)вызов сеттеров
3)вызов load после всех сетов перед всеми гетами
4)вызов гетеров
...
Рейтинг: 0 / 0
25.09.2006, 13:18:43
    #34009548
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
Timm babk2a2LINUXER : конструктор отпадает т.к. вызывается до сеттеров, мне это не надо!

где стало "совсем"?)) я только сказал, что непонимаю, что будет(какой смысл) если бин обернуть классом
Зачем? чем приведенный пример не устраивает?

тем что load вызывается несколько раз
...
Рейтинг: 0 / 0
25.09.2006, 16:19:26
    #34010341
Jozic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
cooluserВ биннах сеттеры и геттеры должны выполнять установку/получение значений полей класса. Не более того. Т.е. какой-либо другой логики в сеттерах и геттерах быть не должно. не правда Java Beans Specification 1.01 - 7.1 Accessor methods... So properties need not just be simple data fields, they can actually be computed values. Updates
may have various programmatic side effects. For example, changing a bean’s background color
property might also cause the bean to be repainted with the new color. ...сделайте класс неизменяемым (если это возможно), передавайте параметры в конструктор и вызывайте там же лоад или вызывайте лоад каждый раз при вызове сеттера
...
Рейтинг: 0 / 0
25.09.2006, 16:56:39
    #34010493
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
babkaеще раз:
1)вызовов бина
2)вызов сеттеров
3)вызов load после всех сетов перед всеми гетами
4)вызов гетеров
-можно вызвать сеттеры в конструкторе, вернее просто установить всё там, хотя наверное это не удобно.
-можно <%BEAN.load();%> с флагом
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 private   static   boolean  loaded=false;
   public   void  load(){
     if (loaded) return ;
    cd=a+b;
    ef=cd-a*b;
    loaded=true;
  }
флаг можно не static
...
Рейтинг: 0 / 0
25.09.2006, 16:57:09
    #34010496
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
авторпередавайте параметры в конструктор и вызывайте там же лоад

а как сделать чтоб конструктор вызывался после сетеров?!не понимаю..
...
Рейтинг: 0 / 0
25.09.2006, 17:04:35
    #34010524
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
2LINUXER: про флаг я понял,спасибо уже предлагали, лучше приведите пожалуйста пример про сетеры в конструкторе.
...
Рейтинг: 0 / 0
25.09.2006, 17:23:55
    #34010605
Jozic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
babka авторпередавайте параметры в конструктор и вызывайте там же лоад

а как сделать чтоб конструктор вызывался после сетеров?!не понимаю..вообщето это звучало так Jozicсделайте класс неизменяемым (если это возможно), передавайте параметры в конструктор и вызывайте там же лоад то есть, сеттеров там не будет, объект создастся на основании ваших параметров которые вы передадите в конструктор этого класса, там же (в конструкторе) сделайте необходимые вычисления. Если объект должен быть изменяемым (из ващего объяснения это НЕ просматриваецца ), то это не подойдет.
В варианте с флагом нужно сбрасывать флаг в "фалсе" при каждом вызове любого сеттера. По мне так лучше вызывать метод вычисления.
...
Рейтинг: 0 / 0
25.09.2006, 17:47:18
    #34010701
Leonidv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
Вызоы вычислений в set и get бывает зачастую красивее, чем отдельный вызов метода. Вопрос в том, что делает метод load(). Если только считает - то именно так и делать.

А автор темы, похоже, не очень понимает зачем ему то, чего он хочет. Например, мне не понятно, почему вызов load() должен быть строго после установки всех полей? Если это так, то единственныйм правильным путем является их инициализация в конструкторе.
...
Рейтинг: 0 / 0
26.09.2006, 06:31:49
    #34011445
LINUXER
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
babkaприведите пожалуйста пример про сетеры в конструкторе
Код: plaintext
1.
2.
3.
4.
5.
6.
//Конструктор
    public  Bean( int  a, int  b) {
       this .a=a;
       this .b=b;
      load();
   }
Код: plaintext
1.
2.
3.
4.
<!--инициализация бина для page scope-->
<%
Bean bean=new Bean( 123 , 323 );
%>
(инициализация)Возможно реализацию load() просто следует перенести в конструктор. Сеттеры не несущие дополнительной функциональности в конструкторе не имеют смысла
о бобовых конструкторах с аргументами

----------------------------------------------------------------------------------------------------------------------------------------------------------------
Народ вас плохо понимает, надо бы разъяснять...
load() вызывается повторно? Если да, в каких случаях?
Сеты производятся вообще 1 раз?
Всё сетится в одном месте(на странице) или есть сложные зависимости?
...
Рейтинг: 0 / 0
26.09.2006, 14:07:04
    #34012707
babka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
bean, как лучше сделать?
автор
Народ вас плохо понимает, надо бы разъяснять...
load() вызывается повторно? Если да, в каких случаях?
Сеты производятся вообще 1 раз?
Всё сетится в одном месте(на странице) или есть сложные зависимости?

1)пытаюсь,борюсь,учусь Ж)
2)нет,не хочу,не надо
3)да
4)все на одной странице

***************************************************
всем большое спасибо!вроде всех понял)
думаю конструктор с параметрами как раз то,что мне надо.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / bean, как лучше сделать? / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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