■作成するファイル一覧
sendMessage.jsp (入力画面) 名前、メールアドレス、メッセージを入力して送信するページ。
showMessage.jsp (返信出力画面) 送られてきたデータを表示するページ。
SendMessageForm.java (フォームデータ格納系クラス) アクションフォームBean。sendMessage.jspファイルの中のフォームに対応するクラスです。validateメソッドに入力値のチェックを記述します。
SendMessageAction.java (本処理実行クラス)アクションクラス。sendMessage.jspファイルからのデータ送信の動作に対応するクラスです。performメソッドにビジネスロジックを記述します。
-----------------------------------------------------------------------------------------------
@ sendMessage.jsp(プロジェクト直下に置く)
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
ERROR: Application resources not loaded -- check servlet container
logs for error messages.
----------------------------------------------------------------------------------------------------
A showMessage.jsp(プロジェクト直下に置く)
<%@ page contentType="text/html; charset=Shift_JIS" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
:
:
:
----------------------------------------------------------------------------------------------------
B SendMessageForm.java (formdataパッケージに所属させる・WEB-INF/src直下に置く)
package formdata;
import javax.servlet.http.*;
import org.apache.struts.action.*;
/**
* アクションフォームBeanクラス
* ActionFormを継承します
*/
public final class SendMessageForm extends ActionForm {
private String name;
private String email;
private String message;
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setEmail(String email) {
this.email = email;
}
public String getEmail() {
return email;
}
public void setMessage(String message) {
this.message = message;
}
public String getMessage() {
return message;
}
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
// エラーを格納するActionErrorsオブジェクトを作成
ActionErrors errors = new ActionErrors();
// 入力チェック
if (name == null || name.equals("")) {
// ActionErrorオブジェクトを作成して格納
// ActionErrorオブジェクトのコンストラクタの第1引数は
// リソースファイルに記述してあるキーを渡す
errors.add("name" , new ActionError("error.name.required"));
}
if (email == null || email.equals("")) {
errors.add("email", new ActionError("error.email.required"));
}
if (message == null || message.equals("")) {
errors.add("message" , new ActionError("error.message.required"));
}
return errors;
}
}//end_of_class
----------------------------------------------------------------------------------------------------
C SendMessageAction.java (strutAactions パッケージに所属させる・WEB-INF/src直下に置く)
package strutAactions;
import javax.servlet.http.*;
import org.apache.struts.action.*;
/**
* アクションクラス
* Actionを継承します
*/
public final class SendMessageAction extends Action {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) {
// メッセージが格納されたフォームBeanを取得します
SendMessageForm sendMessageForm = (SendMessageForm)form;
// 値を取得
String name = sendMessageForm.getName();
String email = sendMessageForm.getEmail();
String message = sendMessageForm.getMessage();
/*** 本来であればここにビジネスロジック(本処理…たとえばDB登録など)を記述 ***/
// "success"という名前で登録されている転送先を検索して返却
// (struts-config.xmlファイルに記述されている)
return (mapping.findForward("success"));
}
}
----------------------------------------------------------------------------------------------------
D Strutsの設定ファイル(struts-config.xml)の編集
----------------------------------------------------------------------------------------------------
E メッセージリソースファイル(application.properties)の編集とnative2asciiコマンドでユニコード変換
sendMessage.title=送信フォーム
sendMessage.heading=メッセージの送信
sendMessage.message=お名前、メールアドレス、メッセージを入力して送信ボタンを押してください。
sendMessage.form.name=お名前
sendMessage.form.email=メールアドレス
sendMessage.form.message=メッセージ
showMessage.title=送信されたメッセージ
showMessage.heading=送信されたメッセージ
errors.header=
エラーがあります
----------------------------------------------------------------------------------------------------
error.name.required=お名前を入力してください。
error.email.required=メールアドレスを入力してください。
error.message.required=メッセージを入力してください。