このアーカイブは同期化されません。 mixi の日記が更新されても、このアーカイブには反映されません。
Servlet の処理の流れが分かったところで、
次は Model(動作)の必要な処理について考えてみよう。
一般的な GUI アプリケーションが Model を起動するのは、
利用者がボタンを押して、何らかの処理を要求した時である。
Web アプリケーションの場合は、
HTML フォームの送信ボタンを押し、
Web サーバにフォーム内容を送信した時である。
そこで、昨日作った 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>
<form action="./login.do" style="line-height: 2">
<div>
ユーザ名:
<input type="text" name="user" value="" />
</div>
<div>
パスワード:
<input type="password" name="password" value="" />
</div>
<div>
<input type="submit" value="ログイン" />
</div>
</form>
</body>
</html>
========== end of /WEB-INF/pages/login.jsp ==========
フォームには入力項目が 2 つあり、
それぞれ user, password という名前である。
そして、フォームの送信先は ./login.do だ。
何の変哲もないログインフォームである。
あえて言うなら、送信先が *.do という URL であることか。
http://localhost:8080/struts-test/index.do を開くと、
ログイン用のフォームが表示されるはずだ。
このフォームを受け取る URL を定義するには、
Struts の設定ファイルに <action> を追加すればよい。
さて、以前の <action> は、View に転送するだけだったが、
今度の <action> はフォームを受け取って処理を行う。
そのため、Model に転送するタイプでないといけない。
<action path="/login"
type="jp.loafer.test.actions.LoginAction" />
Model に転送するタイプの <action> は、
forward の代わりに type 属性を指定する。
Struts における Model は Java クラスであるため、
type 属性には、Model クラスの FQCN を指定する。
(FQCN = Fully Qualified Class Name = 完全修飾クラス名)
jp.loafer.test.actions.LoginAction クラスを作ることで、
フォームの入力を処理することができるようになる。