目次 > 第2章 Server(Web)版チュートリアル >  2.3 設定ファイルの分割と画面遷移 > 2.3.2 初期画面と画面遷移の設定

2.3.2 初期画面と画面遷移の設定

初期画面とは、アプリケーションに初めてアクセスした際に表示される画面であり、Webアプリケーション設定ファイルにて設定する。
チュートリアルでは、下図のように“welcome.jsp”を初期画面とする。

画面遷移図


画面間の遷移では、Server(Web)版が提供するForwardActionクラスを利用して遷移する。以下にアクションマッピング図を示す。

アクションマッピング図

手順

本項では以下の作業が必要になる。

(1) Webアプリケーション設定ファイルの編集

  1. “terasoluna-spring-thin-blank\webapps\WEB-INF\web.xml”を開き、以下の箇所の“index.jsp”を“welcome.jsp”に書き換える。
      <!-- ウェルカムページ定義 -->
      <welcome-file-list>
        <welcome-file>welcome.jsp</welcome-file>
      </welcome-file-list>
    

(2) Struts設定ファイルの編集

初期画面からログオン画面に遷移するためのアクションパスを設定する。

  1. “terasoluna-spring-thin-blank\webapps\WEB-INF\logon\struts-logon-config.xml”を開き、以下の箇所にアクションを設定する。
    <!-- ======================================== アクションマッピング定義 -->
      <action-mappings type="jp.terasoluna.fw.web.struts.action.ActionMappingEx">
    
        <!-- ここから -->
        <!-- ログオン画面表示用アクション -->
        <action path="/logon/logonSCR"
                parameter="/logon/logon.jsp" />
        <!-- ここまで -->
         
      </action-mappings>
    

path属性にはリクエストURLを指定する。parameter属性にはForwardActionを利用する場合、次の遷移先のパスを指定する。

(3) Spring設定ファイルの編集

呼び出すActionクラスを設定する。

  1. “terasoluna-spring-thin-blank\webapps\WEB-INF\logon\logonContext.xml”を開き、以下の箇所にActionクラスを設定する。
        <!-- アクション定義 -->
        <!-- ログオン画面表示用アクション定義 -->
        <bean name="/logon/logonSCR" scope="singleton"
              class="jp.terasoluna.fw.web.struts.actions.ForwardAction" />
    

<bean>要素の属性を以下に示す。

属性説明
nameBean名
scopeBeanのライフサイクル
classBeanの実態

name属性にはリクエストURLを指定する。class属性には、name属性で指定したリクエストが送られてきた際に起動するActionクラスを完全修飾名で指定する。
今回は画面遷移のみであるため、Server(Web)版が提供するForwardActionクラスを指定する。
scope属性にはライフサイクルを指定する。以下に設定可能な値を示す。

説明
singleton1コンテナにつき1インスタンスを生成し共有する。必ずスレッドセーフで実装する必要がある。
prototype呼び出される度にインスタンスを生成する。
requestリクエスト毎にインスタンスを生成し、1リクエスト内で共有する。
sessionセッション毎にインスタンスを生成し、1セッション内で共有する。

(4) ログオン画面の作成

  1. “terasoluna-spring-thin-blank\webapps”に“logon”フォルダを作成する。
  2. 1で作成したlogonフォルダ内に“logon.jsp”を作成し、以下のように編集する。
    <%@ page contentType="text/html; charset=Windows-31J"%>
    <%@ taglib uri="/struts-html" prefix="html" %>
    <%@ taglib uri="/struts-bean" prefix="bean" %>
    <%@ taglib uri="/struts-logic" prefix="logic" %>
    <%@ taglib uri="/terasoluna-struts" prefix="ts" %>
    <%@ taglib uri="/terasoluna" prefix="t" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html:html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
    <title>ログオン画面</title>
    </head>
    
    <body>
    <table border="0" style="width:100%;">
        <tr>
            <td align="center">
                <html:img module="/" page="/image/terasoluna_logo.gif" />
            </td>
        </tr>
        <tr>
            <td align="center">
                <h2>
                    ログオン画面
                </h2>
            </td>
        </tr>
    </table>
    </body>
    </html:html>
    

(5) 初期画面の編集

  1. “terasoluna-spring-thin-blank\webapps\welcome.jsp”を以下のように編集する。
    <%@ page contentType="text/html; charset=Windows-31J"%>
    <%@ taglib uri="/struts-html" prefix="html" %>
    <%@ taglib uri="/struts-bean" prefix="bean" %>
    <%@ taglib uri="/struts-logic" prefix="logic" %>
    <%@ taglib uri="/terasoluna-struts" prefix="ts" %>
    <%@ taglib uri="/terasoluna" prefix="t" %>
    
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
    
    <html:html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
    <title>初期画面</title>
    </head>
    <body>
    <div style="text-align:center">
    
    -- ようこそTERASOLUNAへ --
    
    </div>
    <ts:link action="/logon/logonSCR">ログオン画面へ</ts:link>
    </body>
    </html:html>
    

初期画面からログオン画面への遷移はリンクを利用する。
ここでは、Strutsの<html:link>タグを拡張したServer(Web)版が提供する<ts:link>タグを利用する。このタグを利用することで、リクエストURLにランダムなIDを付与し、ブラウザのキャッシュを避けることができる。
action属性にはアクションパスを記述する。

備考

Server(Web)版が拡張するタグには、“ts”もしくは“t”を付与している。


次項:2.3.3 動作確認

Copyright (C) 2009 NTT DATA CORPORATION