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

Back to archive index

a_mail0****@mail***** a_mail0****@mail*****
2011年 1月 31日 (月) 03:15:04 JST


矢野様

浅見です。ご連絡ありがとうございました。

> 入力は表形式になっていて、ユーザが1項目を入力するたびにDBに保存するのではなくて、表に入力した内容をまとめてサーバにサブミットして、まとめて保存したいのですよね? 

その通りです。Java的に処理をするということで承知しました。ありがとうございます。

ここでもう1点、ご質問させてください。

この入力する表に値リストを設定することになり、以下のようにコーディングをなおしました。

private List voList; 
private ListView table; 
public Test(final PageParameters parameters){ 
(中略) 
try{ 
voList = SearchLogic.getSearchVOList(); 
table = new ListView("table", voList){ 
  private DropDownChoice list_acol;
  @Override 
  protected void populateItem(ListItem item) { 
    List getlistacol = null;
    try {
    getlistacol = SelectList.getlistacol();//リストに出力させるデータを取得
    } catch (IOException e) { 
    e.printStackTrace();
    } 
    SearchVO vo = (SearchVO) item.getModelObject(); 
    item.setModel(new CompoundPropertyModel(vo)); 
    Model mAcollist = new Model();
    mAcollist.setObject(vo.getAcol()); //値リストの初期値はDBから取得
    list_acol = new DropDownChoice(SearchVO.A_COL,mAcollist,getlistacol);
    item.add(list_acol); 
    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 ... 

この書き方だと、テキストボックスに入力する場合とは異なり、値リストで設定したデータはvoListには反映されません。
どのようにコーディングしますと、値リストで更新されたことが認識されるのでしょうか。
表に入力した内容をまとめて保存するという仕様に変更はありません。

何度も恐縮ですが、よろしくお願いいたします。

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

> 矢野です。
> 
> そういった用途でしたら、voListをiteratorで回して処理するというアプローチが一番自然のように思います。
> 入力は表形式になっていて、ユーザが1項目を入力するたびにDBに保存するのではなくて、表に入力した内容をまとめてサーバにサブミットして、まとめて保存したいのですよね? 
> 
> プログラムが正しく動作していれば、ユーザ入力値はすべてvoListの中に入っていますので、ただvoListをループして処理すれば、画面に表示していたものをすべてDBに投入できると思います。つまり、例に挙げてもらったようなやり方そのままですね。
> 
> DBへの接続部分はWicketがなにもしない部分ですし、Wicketができるのは入力値を自動的にVOに反映するところまでかと思います。VOの入ったListはあるわけですから、あとは普通にJava的に処理を、つまりループで回して処理すればよいかと思います。ここの作業に「wicketならでは」のやり方というのはあまり無いように思います。
> 
> 上記でうまく回答できているでしょうか。。
> 
> ---------------------------------------------------
> 矢野 勉(やの つとむ)
> 電子メール: t_yano****@me*****
> ---------------------------------------------------
> 
> _______________________________________________
> Wicket-ja-user mailing list
> Wicke****@lists*****
> http://lists.sourceforge.jp/mailman/listinfo/wicket-ja-user
> 




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