Strutsの要素技術の基本的構造の話。
結局、
・Action
・ActionForm
・Struts-config.xml
・JSPファイル
のファイルが必要で、その内容と、定義書の関係はわかったけど、結局、どのファイルが、どんなふうになってるのよ?
っていうことですよね。
その4種類のファイルサンプルを書きます。
■サンプルの内容
ような、2つの数をいれると、
のかんじで、足し算結果を出すプログラムのソース
■ソースファイル1-Struts-config.xml
こんなかんじ
<?xml version="1.0" encoding="ISO-8859-1" ?> <!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-beans> <form-bean name="tashizanForm" type="tashizan.tashizanActionForm"/> </form-beans> <action-mappings> <action path="/tashizan" type="tashizan.tashizanAction" name="tashizanForm" scope="request" validate="false"> <forward name="success" path="/kaito.jsp"/> <forward name="error" path="/error.jsp"/> </action> </action-mappings> </struts-config> |
(上記 < > ¥は、本当は半角)
上記で、JSPは、kaito.jsp、error.jsp(ActionのForward参照)
Actionは、tashizanAction(Action参照)
ActionFormは、tashizanActionForm(form-bean参照)
があることがわかる。
実はこのほかに、一番初めの起動画面index.jspがある。
以下、これらのサンプルになります。
■ソースファイル2-Action
Actionが記述されたファイルは、tashizanActionクラスが記述されている
tashizanAction.javaになります。
その内容は、以下のとおり。
package tashizan; import java.io.IOException; import java.sql.SQLException; import javax.servlet.ServletException; import javax.servlet.http.*; import org.apache.struts.action.*; public class tashizanAction extends Action { public ActionForward execute( ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { // 画面パラメータの取得 tashizanActionForm myForm = (tashizanActionForm)form; // セッションの取得 HttpSession session = request.getSession(); String nextStep="success"; // 次画面 try { int i1 = Integer.parseInt(myForm.getParm1()); int i2 = Integer.parseInt(myForm.getParm2()); if ( (i1 <= 0 ) || (i2 <= 0 )) { session.setAttribute("kekka", "0より大きい数を入れてください"); nextStep = "error"; } else { session.setAttribute("kekka", String.valueOf(i1+i2)); nextStep = "success"; } } catch(Exception e) { session.setAttribute("kekka", "数値を入れてください"); nextStep = "error"; } return (mapping.findForward(nextStep)); } } |
(上記 < > ¥は、本当は半角)
■ソースファイル3-ActionForm
ActionFormが記述されたファイルは、tashizanActionFromクラスが記述されている
tashizanActionForm.javaになります。
その内容は、以下のとおり。
package tashizan; import javax.servlet.http.HttpServletRequest; import org.apache.struts.action.*; public class tashizanActionForm extends ActionForm { private String parm1; private String parm2; private String result; public String getParm1() { return parm1; } public void setParm1(String parm1) { this.parm1 = parm1; } public void setParm2(String parm2) { this.parm2 = parm2; } public String getParm2() { return parm2; } public String getResult() { return result; } public void setResult(String result) { this.result = result; } } |
■ソースファイル4-JSPファイル
JSPは、結局、kaito.jsp、error.jsp、index.jspが必要になります。
まず、kaito.jspはこんなかんじ
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ page contentType="text/html; charset=utf-8" %> <HTML> <HEAD> <TITLE>足し算</TITLE> </HEAD> <BODY> 結果<BR> <H2> <bean:write name="tashizanForm" property="parm1" scope="request"/>+ <bean:write name="tashizanForm" property="parm2" scope="request"/>= <bean:write name="kekka" scope="session"/> </H2> <A HREF="index.jsp">戻る</A> </BODY> </HTML> |
(上記 < > ¥は、本当は半角)
次に、error.jspは、こんなかんじ
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <HTML> <HEAD> <TITLE>足し算</TITLE> </HEAD> <BODY> <H2> <bean:write name="kekka" scope="session"/> </H2> <A HREF="index.jsp">戻る</A> </BODY> </HTML> |
(上記 < > ¥は、本当は半角)
最後に、index.jspはこんなかんじ
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %> <%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %> <%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %> <%@ page contentType="text/html; charset=utf-8" %> <html:html> <HEAD> <TITLE>足し算</TITLE> </HEAD> <BODY> <html:form action="/tashizan" focus="parm1"> <html:text property="parm1" size="6"/>+ <html:text property="parm2" size="6"/> <html:submit property="submit" value="="/> </html:form> </BODY> </html:html> |
(上記 < > ¥は、本当は半角)
■このほか
起動には、ほかにweb.xmlや各種jarファイルが必要です。
しかし、それらは、
・Strutsをダウンロードして、解凍するとでてくるappsにある
struts-blank-1.X.XX.warをTomcatのwebappsの下において、
・起動するとstruts-blank-1.X.XXが解凍され
・その下にあるWEB-INF
(X,XXには、バージョン番号が入ります)
をコピーすればいいだけなので、省略します。
(実際今回のプログラムでは、そのへんはコピーしただけで、
手を入れていません)
ってことで、今回は終わり。というか、これで基本的な話は終わりで、
次回から、いろいろ応用編の話