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

Back to archive index

a_mail0****@mail***** a_mail0****@mail*****
2010年 12月 8日 (水) 02:11:32 JST


矢野様

浅見です。

ご回答ありがとうございました。
質問の内容があいまいで申し訳ありませんでした。

状況を説明させていただきます。

DBから取得したデータを画面に出力し、
画面から更新したデータをDBに反映させる機能を
以下のようにコーディングしております。

private List voList;
private ListView table;
public Test(final PageParameters parameters){
(中略)
try{
voList = SearchLogic.getSearchVOList();
table = new ListView("table", voList){
  @Override
  protected void populateItem(ListItem item) {
    SearchVO vo = (SearchVO) item.getModelObject();
    item.setModel(new CompoundPropertyModel(vo));
    appinfield = new TextField<String>(SearchVO.A_COL);
    item.add(appinfield);
    funcinfield = new TextField<String>(SearchVO.B_COL);
    item.add(funcinfield);
  }
};
(中略)
Button dbButton = new Button("toDB") {
  public void onSubmit() {
  //画面のデータをDBに反映
  (中略)
  List inlist = getList(voList);
  try {
    Iterator itrList = voList.iterator();
    while(itrList.hasNext()){
      SearchVO vo = (SearchVO)itrList.next();
      String inputVapp = vo.getAAA();
      String inputVfunc = vo.getBBB();
      String sql = "UPDATE ...

今回、Iteratorを使用してユーザ入力値を取得していますが、
wicketだとどのようなコーディングになるのでしょうか。

基本的な質問で恐縮ですが、
よろしくお願いいたします。

----- Original Message -----

> 矢野です。
> 
> ちょっと質問の意味を正確に取れなかったので確認したいです。
> 
> ご質問でいっている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 mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
> 




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