次に、「login」フォルダに「form」フォルダを作成して、「LoginForm.java」を作成します。
LoginForm.java |
import org.apache.struts.action.ActionForm;
public class LoginForm extends ActionForm {
private String id;
private String name;
private String password;
/**
*
* @return
*/
public String getName() {return name;}
/**
*
* @param name
*/
public void setName(String name) {this.name = name;}
/**
*
* @return
*/
public String getPassword() {return password;}
/**
*
* @param password
*/
public void setPassword(String password) {
this.password = password;
}
/**
*
* @return
*/
public String getId() {return id;}
/**
*
* @param id
*/
public void setId(String id) {this.id = id;}
} |
いままでの連載でたびたび登場してきた「Bean」とは何かについてですが、このLoginForm.javaがBeanに当たります。しかし、今回は説明を割愛させていただき次回解説します。
最後に、「C:\PKG\Hello\WEB-INF」配下の「struts-config.xml」を以下のように編集します。
<?xml version="1.0" encoding="Shift_JIS" ?>
<!DOCTYPE struts-config PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 1.3//EN"
"http://struts.apache.org/dtds/struts-config_1_3.dtd">
<struts-config>
<!-- =================================== Form Bean Definitions -->
<form-beans>
<form-bean name="HelloForm" type="hello.form.HelloForm" />
<!-- ここから追加 -->
<form-bean name="LoginForm" type="login.form.LoginForm" />
<!-- ここまで追加 -->
</form-beans>
<!-- ============================ Global Exception Definitions -->
<global-exceptions></global-exceptions>
<!-- ============================== Global Forward Definitions -->
<global-forwards></global-forwards>
<!-- ============================== Action Mapping Definitions -->
<action-mappings>
<action attribute="HelloForm" input="/pages/Who.jsp"
name="HelloForm"
path="/hello"
type="hello.HelloAction"
scope="session"
validate="true">
<forward name="success" path="/pages/Hello.jsp" />
</action>
<!-- ここから追加 -->
<action
attribute="LoginForm"
input="/pages/Login01.jsp"
name="LoginForm"
path="/Login"
type="login.LoginAction"
scope="session"
validate="true">
<forward name="success" path="/pages/Login02.jsp" />
</action>
<!-- ここまで追加 -->
</action-mappings>
<!-- ========================== Message Resources Definitions -->
<!-- ================================= Plug Ins Configuration -->
<!-- =========================================== Tiles plugin -->
<!-- ======================================= Validator plugin -->
</struts-config> |
おわびと訂正のお知らせ
上記struts-config.xmlに加え、web.xmlにも追記が必要なため以下の記述を追加しました。
内容について正確を期せずに混乱を招いた点、読者の皆様におわび申し上げます(2011年8月2日)。
また、「C:\PKG\Hello\WEB-INF」配下の「web.xml」にも以下のように追記が必要です。
<web-app>
<servlet>
<servlet-name>LoginAction</servlet-name>
<servlet-class>login.LoginAction</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginAction</servlet-name>
<url-pattern>/LoginAction</url-pattern>
</servlet-mapping>
:
:
【略】
:
:
<resource-ref>
<res-ref-name>jdbc/mysql</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app |
これで、すべての設定作業は完了です。
では、動作を確認しましょう。連載第2回と同様に、Eclipseを起動します。次に、[プロジェクト・エクスプローラー]の「Hello」を選択して右クリックをして、[リフレッシュ]を選択します。Eclipseで[プロジェクト]の[クリーン]を選択して、Helloプロジェクトのコンパイルが完了したら、Eclipse上から「Tomcat起動」アイコン(猫マーク)を押して、Tomcatを起動してください。
正常に起動したことを確認したら、Webブラウザで「http://localhost:8080/hello/pages/Login01.jsp」にアクセスしてください。すると、図6のような画面が表示されます。
図6 サンプルのログイン画面
先ほど登録したデータを取得するため、IDとパスワードを入力してログインボタンを押してください。
図7 DB参照結果を出力
すると、DBに登録した情報(name)を取得して画面に表示しているのが、分かると思います。
今回のプログラムでは、データベースへ接続するための情報を「server.xml」のコンテキスト(Context)に定義しているため、流用でほかのプログラムを作成することも可能です。ぜひ試してみてください。
次回は、DB操作において重要なO/Rマッピングについて解説します。また、今回説明できなかったBeanについても次回解説します。
今回作成したサンプルはこちらからダウンロードできます。
眞野 寿彦(まの としひこ)
株式会社メセナ・ネットコム所属
SEとして充実した日々を送っている。現在はStrutsを使ったWebアプリケーション開発を担当中。「信頼されるプロジェクトマネジャー」を目指し、自分に必要なことを常に考え、行動し、「真の技術者」として日々成長している。
趣味はボウリング、ビリヤード、ダーツ
尊敬する人はティム・バーナーズ=リー