Jo s tou dvoji deklaraci mas pravdu. Jednou je to v ASPX a jednou v parcialni tride generovane automaticky IDE.

Mne jinak nevadi ze pouzivam get() set(), vadi mi jen ze ty get() set() musim zbytecne psat do beany, ktera navic musi implementovat cosi (takze spousta zbytecne prace). Kdyz ve Swingu pouziju textfield, tak taky nemusim dopisovat nejake metody abych vytahl z koponenty jeji hodnotu. Swing komponenta vsechny metody pro praci s ni uz ma v sobe. Podobne bych rad pracoval v Jave i na webu. Rozhodne by to znamenalo psani mene kodu a pro lidi zvykly delat se Swingem a s objekty obecne rychlejsi ucici krivku.

Petr


Martin Kuba wrote:
Petr Synek wrote:
To je asi jako bych ve Swingu nekam umistil JTextField a jeste musel vytvorit POJO tridu s getText() a setText() metodama jen kvuli tomu abych mohl z toho textfieldu ziskat text. A navic bych jeste musel v konstruktoru rict ze ten JTextField ma ID napr. "Calculator" a tu POJO tridu musel pojmenovat CalculatorActionBean a implementovat nejaky interface. Tedy zrovna intuitivni mi takovyto programatorsky styl neprijde.

Od intuitivniho web frameworku bych cekal ze s komponentou "numberOne" budu 
rovnou v Jave (v code behind) pracovat takto:
String text = numberOne.getText();
numberOne.setText("Franta")

Pricemz o deklaraci promene numberOne se uz nestaram, protoze ta uz byla jednou deklarovana v JSP (neboli don't repeat yourself).

Jak se koukam na code-behind na http://support.microsoft.com/kb/303247
tak ten TextBox je tam taky definovany dvakrat, jednou
v ASPX:

 <asp:textbox id="MyTextBox" text="Hello World" runat="server"></asp:textbox>

a podruhe ve tride:

 protected System.Web.UI.WebControls.TextBox MyTextBox;

Jestli .NET pristupuje k protected promennym primo, bez
setXXX() a getXXX() metod, tak je to strucnejsi, ale
porusuje to ruzne zasady, ktere nam SUN vtlouka do hlavy.

Nevidim vyhodu toho, kdyz musim objekt nadeklarovat
a pak na nem volat metodu:

protected System.Web.UI.WebControls.TextBox MyTextBox;

public void MyButton_Click(Object sender, EventArgs e){
            MyLabel.Text = MyTextBox.Text.ToString();
        }

oproti tomu, kdyz nadefinuju rovnou hodnotu:

private String text;

public Resolution click() {
    label = text;
    text = "Franta";
    ...
}

Ale jestli to moc potrebujete, staci udelat toto:

public class Neco implements ActionBean{
...
public static class TextBox {
   private String text;
   public String getText() { return text; }
   public void setText(String s) { text = s;}
}

private TextBox textBox =  new TextBox();
public TextBox getTextBox() { return textBox; }

public Resolution click() {
  String text = textBox.getText();
  textBox.setText("Franta");
}

a v JSP udelat

  <s:text name="textBox.text" />

Tot vse.

Makub

Odpovedet emailem