Jakarta Struts (1) Javaによる Webアプリケーション入門 第11回 1 ここでの内容 Struts での基本的なプログラミングについ て学ぶ。 2 Struts とは Jakarta Project が作成している、Webアプ リケーション用のフレームワーク MVCモデル2を用いている。 Struts は View と Controller を担当 3 Struts でのプログラミング 1. 2. 3. 4. 5. Webブラウザからの要求は、すべて 「ActionServlet」が受け取る。(用意されている) パラメータは「ActionForm Bean」へ (作成する) ビジネスロジックは「Actionクラス」で (作成す る)。処理結果は Model に格納。 表示は JSP で。Strutsのタグライブラリを使う。 Action クラスやJSPを呼び出す順序やタイミン グは「アクションコンフィグレーションファイル」で。 4 入力フォームの作成 JSP で作成する。 タグライブラリを利用する。 <html:form action="/searchBook"> <td>分類番号</td> <td><html:text property="ndc" maxlength="20“ size="20“ /></td> <html:submit property=“submit” value=“検索” /> <html:reset value="reset" /> </html> 5 ActionForm Bean の作成 (1) Webブラウザからの要求のときに、クエ リーとして与えられたパラメータを格納する。 ActionFrom を継承 JavaBeans のプロパティのネーミングルー ルに従ってメソッドを作成 入力フォームのパラメータ名と ActionForm Bean のプロパティが一致して いなければならない。 6 ActionForm Bean の作成 (2) public class SearchForm extends ActionForm { public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } } 7 ActionForm Bean の作成 (3) // このメソッドは、プロパティに値が設定される前に呼 ばれる public void reset(ActionMapping mapping, HttpServletRequest req) { try { req.setCharacterEncoding("Shift_JIS"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } } 8 Action クラスの作成 (1) org.apache.struts.action.Action クラスを 継承 ビジネスロジックを処理する 入力フォームのデータ処理なども execute メソッドをオーバーライド 最後に、この後でどのプログラムに処理を 任せるか指定するための文字列を指定す る。 9 Action クラスの作成 (2) // ActionForm Bean から ndc プロパティを // 取得 SearchForm form = (SearchForm)f; String ndc = form.getNdc(); 10 Action クラスの作成 (3) // データベースの検索を行い、 // その結果を HttpSession に登録 List list = search(ndc, tyosya_hyouji, id, title, author,publisher); HttpSession session = request.getSession(); session.setAttribute("bookList", list); 11 Action クラスの作成 (4) // “success” は、この後でどのプログラムに // 処理を任せるか指定するための文字列 // (アクションコンフィグレーションファイルに // 記述) return(mapping.findForward("success")); 12 JSP <ul> <logic:iterate id="book" name="bookList" scope="session"> <li> <bean:write name="book" property="title" /> / <bean:write name="book" property="author" /> </li> </logic:iterate> </ul> 13 アクションコンフィグレーション ファイル(1) Action クラスやJSPを呼び出す順序やタイ ミングなど、Struts の働きを定める。 struts-config.xml という名前のファイル 14 アクションコンフィグレーション ファイル(2) ActionForm Bean を定義 type 属性はクラス名、name 属性は名前 <form-beans> <form-bean name="searchForm" type="SearchForm" /> </form-beans> 15 アクションコンフィグレーション ファイル(3) <action-mappings> <action path="/searchBook" type="SearchBookAction" name="searchForm" scope="request"> <forward name="success" path="/list.jsp"/> </action> </action-mappings> 16 アクションコンフィグレーション ファイル(4) <action path="/searchBook" type="SearchBookAction" 「アクション(URLで区別される処理内容)」 を定義 type 属性が Action クラス名 path がパス名。実際は “/searchBook.do” というパス名になる。 17 アクションコンフィグレーション ファイル(5) name="searchForm" scope="request"> このアクションで利用される ActionForm Bean scope 属性は、ActionForm Bean のス コープ。“session” か “request” 18 アクションコンフィグレーション ファイル(6) <forward name="success" path="/list.jsp"/> Action クラスのこの部分に対応 return(mapping.findForward("success")); list.jsp にこの後の処理を任せる 19 web.xml <servlet> <servlet-name>action</servlet-name> <servlet-class> org.apache.struts.action.ActionServlet </servlet-class> *.do というパターンのアク ...... ションは、ActionServlet で処 理をする <servlet-mapping> <servlet-name>action</servlet-name> <url-pattern>*.do</url-pattern> 20 </servlet-mapping> Tomcat への配置 StrutsのアーカイブのlibフォルダにあるJar ファイルを、WEB-INF/libにコピー。 タグライブラリの設定を記述している*.tld ファイルをWEB-INFにコピー。 struts-config.xml は WEB-INF に置く。 21
© Copyright 2024 ExpyDoc