[Wicket-ja-user 479] Re: 表からのデータ取得について

Back to archive index

Tsutomu Yano t_yano****@me*****
2010年 12月 6日 (月) 02:13:23 JST


矢野です。

ちょっと質問の意味を正確に取れなかったので確認したいです。

ご質問でいっているList型というのは、java.util.List型のことなのでしょうか。ListはJavaの基本型のひとつですので、おそらく違うのではないかと推測します。

getModelObjectについて言及しているので、おそらく、ListViewからモデル値を取得したいという意味だと解釈して書きますね。

ListViewのgetList()メソッドを呼び出すことで、ListViewが表示しているListが取得できます。これはjava.util.List型のオブジェクトですので、iteratorで走査するなり、get(index)で要素を取得するなり、すきにあつかうことができます。

getModelObject()を呼び出すことでも、同じようにjava.util.Listを取得できます。これはおっしゃるとおりです。getList()のほうは、値が入ってない場合も空のListを返してくれるのでより便利な気がします。

お望みであれば、iterator()メソッドを呼ぶことでIteratorを取得できます。IteratorはListItemオブジェクトを順番に返します。ListItemはWicketの定義しているクラスで、ListViewが表示する各行を表しています。ListItemのgetModelObject()を呼ぶことでも、各行のモデル値を取得できます。

しかし、前回のメールで書いたように、フィールドにListを入れた上で、PropertyModelやCommpoundPropertyModelでListとListViewを結びつける方が、より一般的なWicketっぽいコードのように思います。

よろしければ、どういうことをやろうとしていて、今どういう風にうまくいかない(こう期待しているけど実際にはこう動く、など)という情報を教えてもらえれば、もっと的確に回答できるような気がします。

とりあえず推測だけで書いてしまったので、的外れかもしれません。もしそうでしたら、具体的な例など挙げていただければ、より的確な回答ができるかもしれません。


---------------------------------------------------
矢野 勉(やの つとむ)
電子メール: t_yano****@me*****
---------------------------------------------------

On 2010/12/06, at 0:01, a_mail0****@mail***** wrote:

> 矢野様
> 
> 浅見です。
> 
> 早急のご連絡ありがとうございました。
> 
> ご教示いただきました方法で、
> voListのプロパティがユーザ入力値に更新されることを確認しました。
> 
> ここで、さらにご質問なのですが、
> List型から値を取得するにはどのようにすればよろしいでしょうか。
> getModelObjectを使うのかとは思いますが、
> なかなかうまく動きません。
> 
> お手数をおかけしますが、
> よろしくお願いいたします。
> 
> ----- Original Message -----
> 
>> こんにちは、矢野です。
>> 
>> サンプルコードにある、
>> 
>>       //DBから取得したデータを表に格納
>>       ListView table = new ListView("table", SearchLogic.getSearchVOList()){
>> 
>> の部分を
>> 
>>       //フィールドを定義
>>       private List voList;
>>       (中略)
>> 
>>       //DBから取得したデータを表に格納
>>       voList = SearchLogic.getSearchVOList();
>>       ListView table = new ListView("table", voList){
>> 
>> に変えると、
>> 
>>   Button dbButton = new Button("toDB") {
>>     public void onSubmit() {
>>       //画面のデータをDBに反映
>>     }
>>   };
>> 
>> が呼ばれたときには、voListというフィールド(List型)の中にあるオブジェクト(SearchVO)の「SearchVO.A_COL」や「SearchVO.B_COL」といったプロパティが、ユーザ入力値で書き換わっているはずです。あとはそれをDBに格納すればよいかと思います。
>> 
>> やってみてください。
>> 
>> ---------------------------------------------------
>> 矢野 勉(やの つとむ)
>> 電子メール: t_yano****@me*****
>> ---------------------------------------------------
>> 
>> _______________________________________________
>> Wicket-ja-user mailing list
>> Wicke****@lists*****
>> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
>> 
> 
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user




Wicket-ja-user メーリングリストの案内
Back to archive index