TERASOLUNAのタグで検索結果ページリンクを簡単にオープンソースTERASOLUNAで作るWebアプリ(4)(2/2 ページ)

» 2009年02月16日 00時00分 公開
[佐々木高洋株式会社NTTデータ]
前のページへ 1|2       

そのほかの必要なファイルを作成する

 そのほかに作成・追記する内容を以下に示します。

業務ロジックと業務入出力DTOの作成

 業務ロジッククラス(UserListBLogic.java)は、ユーザー照会結果と総件数を返します。

リスト4 UserListBLogic.java
package sample2;

import jp.terasoluna.fw.dao.QueryDAO;
import jp.terasoluna.fw.service.thin.BLogic;
import jp.terasoluna.fw.service.thin.BLogicResult;

public class UserListBLogic implements BLogic<UserListInput> {

    // 照会用DAO
    private QueryDAO queryDAO;

    public void setQueryDAO(QueryDAO queryDAO) {
        this.queryDAO = queryDAO;
    }

    public BLogicResult execute(UserListInput param) {
        int startIndex = Integer.valueOf(param.getStartIndex());
        int row = Integer.valueOf(param.getRow());

        // 一覧データを取得
        UserBean[] users = (UserBean[])queryDAO.
            executeForObjectArray("getUserList",null,UserBean.class,
            startIndex,row);

        // 総件数を取得
        String totalCount = queryDAO.executeForObject(
            "getTotalCount", null, String.class);

        // 業務出力クラスを作成
        UserListOutput output = new UserListOutput();
        output.setUsers(users);
        output.setTotalCount(totalCount);

        BLogicResult result = new BLogicResult();
        result.setResultObject(output);
        result.setResultString("success");

        return result;
    }
}

リスト5 業務入力クラス(UserListInput.java)
package sample2;

public class UserListInput {
    //開始インデックス
    private String startIndex;
    //表示件数
    private String row;
    //(ゲッター、セッターは省略)
}

リスト6 業務出力クラス(UserListOutput.java)
package sample2;

public class UserListOutput {
    //照会結果
    private UserBean[] users;
    //総件数
    private String totalCount;
    //(ゲッター、セッターは省略)
}

ユーザー情報を格納するBeanの作成

 SQL出力結果を格納するユーザー情報Bean(UserBean.java)を定義します。

リスト7 UserBean.java
package sample2;

public class UserBean {
    //ユーザーID
    private String userId;
    //ユーザー名
    private String userName;
    //年齢
    private String age;
    //(ゲッター、セッターは省略)
}

そのほかのXMLファイルへの追記

 SQL定義ファイルに、全データと件数を取得するSELECT文を追記します。

リスト8 SQL定義ファイル(sqlMap.xml)
<!-- ユーザー一覧の取得 -->
<select id="getUserList" resultClass="sample2.UserBean">
  SELECT ID AS "userId", NAME AS "userName", AGE AS "age"
  FROM USERLIST
</select>

<!-- ユーザー総件数の取得 -->
<select id="getTotalCount" resultClass="java.lang.String">
  SELECT COUNT(*) FROM USERLIST
</select>

 Bean定義ファイルに、画面と業務ロジックのアクション定義を追記します。

リスト9 Bean定義ファイル(moduleContext.xml)
<bean class="jp.terasoluna.fw.web.struts.actions.BLogicAction"
  name="/listBL" scope="singleton">
  <property name="businessLogic" ref="listBLogic" />
</bean>

<bean name="/listSCR" scope="singleton"
  class="jp.terasoluna.fw.web.struts.actions.ForwardAction" />

<bean class="sample2.UserListBLogic" id="listBLogic"
  scope="singleton">
  <property name="queryDAO" ref="queryDAO" />
</bean>

 業務入出力ファイルに、一覧表示情報の入出力定義を追記します。

リスト10 業務入出力ファイル(blogic-io.xml)
<action path="/listBL">
  <blogic-params bean-name="sample2.UserListInput">
    <set-property property="startIndex" blogic-property="startIndex"
      source="form" />
    <set-property property="row" blogic-property="row" 
      source="form" />
  </blogic-params>

  <blogic-result>
    <set-property property="totalCount" blogic-property="totalCount"
      dest="form" />
    <set-property property="users" blogic-property="users"
      dest="form" />
  </blogic-result>
</action>

ユーザー一覧画面の確認

 実行して確認してみましょう。HSQLDBTomcatを起動して、Webブラウザに以下のURLを入力します。

http://localhost:8080/terasoluna-sample/listBL.do

 図4のような画面が表示されれば成功です。ページリンクをクリックすると、表示が切り替わります。

図4 ユーザー一覧画面の出力結果 図4 ユーザー一覧画面の出力結果

最終回は、Webアプリのセキュリティ強化機能

 今回は、TERASOLUNAフレームワークの応用として便利なDB検索結果一覧表示機能を紹介しましたがいかがでしたでしょうか。連載最終回の次回は引き続き応用として、以下2つのセキュリティ機能を紹介しますので、ご期待ください。

・ユーザー情報保持機能
・アクセス権限チェック機能

@IT関連記事

Webアプリの常識をJSPとStrutsで身につける
JSP/サーブレット+StrutsのWebアプリケーション開発を通じて、Java言語以外の開発にも通用するWebアプリケーション全般の広い知識・常識を身に付けるための連載です。初心者・中堅・ベテランも大歓迎!

Strutsを使うWebアプリケーション構築術
ステップ・バイ・ステップの解説で誰にも分かるStruts講座。効率の高いWebアプリケーション開発をマスターしよう

開発の標準化とフレームワークの普及
21世紀はじめのWeb技術史(2) 今回は、ソフトウェア品質を高めるために進化を遂げてきたアプリケーション開発環境の最近の道筋を概観する。キーワードはフレームワーク
情報マネジメント > アーキテクチャ 2007/3/19

Javaバッチ処理は本当に業務で“使える”の?
オープンソースフレームワークを使ってバッチ処理の開発手法やノウハウを学んでいく本連載。バッチ処理を知っている人も知らない人も、業務システムに欠かせないバッチ処理について理解を深めましょう

.NET開発でもオープンソース・フレームワークを使おう
TERASOLUNA for .NETフレームワーク概説 .NET Frameworkだけの業務システム開発で起こる問題とは? それを解消するのに役立つフレームワークの条件とは?
Insider.NET」フォーラム 2003/9/30


前のページへ 1|2       

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。