一昨日書いたマッピングを試してみよう。

まず、struts-config.xml に、以下の設定を追加する。

    <action-mappings>
        <action path="/index" forward="/WEB-INF/pages/login.jsp" />
    </action-mappings>

そして、転送先の JSP ページを用意する。

struts-test/
    + WEB-INF
        + pages/
            + login.jsp

========== /WEB-INF/pages/login.jsp ==========
<?xml version="1.0" encoding="UTF-8" ?>
<%@ page contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8" %>
<!DOCTYPE html PUBLIC
        "-//W3C//DTD XHTML 1.0 Transitional//EN"
        "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
        xml:lang="ja" lang="ja">

<head>
    <meta http-equiv="Content-type"
            content="text/html; charset=UTF-8" />
    <title>struts-test ログイン</title>
</head>

<body>
    <h1>ログインページ</h1>
</body>

</html>
========== end of /WEB-INF/pages/login.jsp ==========

今回は JSP を View として利用する。
JSP は、テキスト形式のデータを生成するのに向いており、
特に HTML や XML との相性が良い。

JSP ファイルの中身は、ほぼ送信データそのものであり、
ページの一部に特殊な制御子を埋め込む事で処理を行う。
上記の場合も、そのほとんどが (X)HTML となっている。

JSP の場合、まず先頭でページに関する情報を宣言する。
<%@ ~ %> はディレクティブと呼ばれ、
JSP に関する設定を行う記述である。

    <%@ page contentType="text/html; charset=UTF-8"
            pageEncoding="UTF-8" %>

JSP で日本語のページを出力するためには、
ほぼ間違いなく page ディレクティブが必要である。
省略すると、種類によって UTF-8 か ISO-8859-1 となるが、
たとえ UTF-8 を使うにしても明確にしておく方がよい。

contentType は JSP ページをクライアントに送る際に
使われるエンコーディングであり、pageEncoding は、
JSP ページを書く時のエンコーディングだ。
理由がない限り、両者を同一にしておくことが好ましい。

さて、上記を用意した上で、ブラウザで以下の URL を開く。
「ログインページ」と表示されれば成功である。

http://localhost:8080/struts-test/index.do

明日は、この動作の仕組みを調べてみよう。