プログラミング言語や環境設定を中心としたパソコン関連の技術メモです。
主にシステム開発中に調べたことをメモしています。TIPS的な位置付けで、気が向いたときにちまちま更新していきます。
Java、SAStruts、データの一覧表示。
一覧画面とか作りたいことあるじゃないですか。
検索結果を一覧表示とかしたり。

よく分からん時は面倒くさそーと思っていたのですが
分かってみたら簡単でした。
こんな感じでちょちょいのちょいφ(--)


1.Action上に一覧情報を入れる箱(List)を用意する。
  package hoge.action;
  
  import java.util.ArrayList;
  import java.util.List;
  
  public class HogeAction {
      /** hoge一覧 */
      public List<HogeDto> hogeDtoList = new ArrayList<HogeDto>();

  }


2.一覧表示したい情報を取得して「1.」で用意した箱に入れる。
  サンプルではhogeService.Select()の結果がEntityのListで返ってくるので
  それをDtoに詰めかえてpublicフィールドのListに突っ込んでいます。
  package hoge.action;
  
  import java.util.ArrayList;
  import java.util.List;
  import javax.annotation.Resource;
  import org.seasar.struts.annotation.Execute;
  
  public class HogeAction {
      /** hoge一覧 */
      public List<HogeDto> 
hogeDtoList = new ArrayList<HogeDto>();
  
      /** hogeエンティティ操作クラス */
      @Resource
      protected HogeService hogeService;
      
      @Execute(validator = false)
      public String index() {
  
          // 検索結果Entity取得
          List<HogeEntity> tmpList = hogeService.Select();
  
          //EntityからDTOへ詰め替え
          HogeDto hd;
          for(HogeEntity he : tmpList) {
              //DTO生成
              hd = new HogeDto();
              hd.hogeEntity = he;
              //DTOリストに追加
              
hogeDtoList.add(hd);
          }
          return "index.jsp";
      }
  }



3.JSP側で一覧情報を表示するφ(--)
  <c:forEach var="m" items="${hogeDtoList}">
      <tr>
          <td>${f:h(m.hogeEntity.column01)}</td>
          <td>${f:h(m.hogeEntity.column02)}</td>
          <td>${f:h(m.hogeEntity.column03)}</td>
      </tr>
  </c:forEach>


要は、Action側にpublicフィールドとしてListな変数を用意して、
そこに一覧表示したい内容を突っ込みます。
あとはこのListデータをjsp側で取り出して表示するだけです、多分。

そんなに難しくはなかったなーというのが率直な感想。
あとはページング処理か。。
スポンサーリンク
 
このエントリーをはてなブックマークに追加 

category:● Java  thema:システム開発 - genre:コンピュータ  Posted by ササキマコト 

  関連記事