[Seasar-user:15851] Re: [teeda]isAaaの使い方
Koichi Kobayashi
[E-MAIL ADDRESS DELETED]
2008年 9月 26日 (金) 19:01:06 JST
小林 (koichik) です.
Date: Fri, 26 Sep 2008 14:58:37 +0900
From: "Tetsutaroh Satoh" <[E-MAIL ADDRESS DELETED]>
To: <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:15849] Re: [teeda]isAaaの使い方
> prerender()メソッドにaaaItemsの中身を書いて、
> 実行し、ラジオボタンを表示させ、ラジオボタンを
> クリックしてからサブミットすると、
> doSubmit()メソッドが呼び出されないという
> 現象がおこります。
コンソールに出力されるログを確認していますか?
盛大に例外が出ているはずです.
問題が起きた時には,まずは何が起きているのか
情報を集めてください.
以下を読む前に,コンソールを確認してみてください.
Teeda は HTML の id をページクラスの
「プロパティ」と結びつけます.
プロパティというのは元々は JavaBeans での
約束事で,型が T で名前が xxx というプロパティは
T getXxx()
void setXxx(T newValue)
という getter おおび setter と呼ばれる
メソッドで実現されます.
型が boolean の場合に限り,getter メソッドを
boolean isXxx()
とすることもできます.
Teeda (Seasar2) では,この JavaBeans 流の
getter/setter メソッドに加えて,public な
フィールドも「プロパティ」として扱われます.
つまり,型が T で名前が xxx というプロパティを
public T xxx
というフィールドで実現することができます.
一つの「プロパティ」を実現する方法が複数
(getter/setter メソッドと,public フィールド)
あることに注意してください.
getter/setter メソッドによるプロパティの
名前と public フィールドによるプロパティの
名前が同じ場合,それらは別のプロパティではなく,
同じ名前のプロパティを表します.
> public Integer aaa;
> public Boolean isAaa() {
略
> }
上で引用した aaa という public フィールドは
aaa という Integer 型のプロパティを表します.
一方,isAaa() というメソッドは
aaa という boolean 型のプロパティを表します.
同じ名前のプロパティなのに型が異なっています.
<span id="isAaa"> に対応するプロパティを
メソッドではなく public フィールドで実現すると
public boolean aaa;
であり,
public Integer aaa;
と同時に存在することはできません.
メソッドであってもこの矛盾は同じです.
ラジオボタンと condition で使用する名前を
「プロパティ」という観点から見直してください.
なお,[Seasar-user:15850] で指摘されている
[Seasar-user:15850]
> > prerender()メソッドにaaaItemsの中身を書いて、
>
> この行ぐらいから、少し間違っている使い方を
> しています。
についてですが,間違ってはいません.
もっと楽な使い方があるということだと思います.
--
<component name="koichik">
<property name="fullName">"Koichi Kobayashi"</property>
<property name="email">"[E-MAIL ADDRESS DELETED]"</property>
<property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
Seasar-user メーリングリストの案内