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