Jakarta Struts (2) ソフトウェア特論 第11回.

Slides:



Advertisements
Similar presentations
年度 J2EE II 稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴. 2 この講義の位置づけ 3年前期の「データベース論 (J2EE I) 」に続く講義。 「データベース論」の講義内容を理解 していることが前提。
Advertisements

1 JSP の作成 JSF による Web アプリケーション 開発 第 4 回. 2 ここでの内容 JSF での JSP の作り方と動かし方につい て学ぶ。
OWL-Sを用いたWebアプリケーションの検査と生成
Struts勉強会資料 2002/06/27.
情報基礎演習I(プログラミング) 第9回 6月22日 水曜5限 江草由佳
難しいことは置いといて、 取り合えず 「BlazeDS」 を使って、 Flash、AIRアプリから Javaオブジェクトのメソッドを呼び出すための 手順書(Windows版) 2008年2月 Lecce.
2004年度 サマースクール in 稚内 JSFによるWebアプリケーション開発
JPAを利用した RESTful Webサービスの開発
2006年11月22日 植田龍男 Webサービス II (第9回) 年11月22日 植田龍男.
JSFによるWebアプリケーション開発 第9回
Struts1.xの脆弱性(CVE ) に対するSDEの対処:wrapタイプ (パッチのご提供)
WebサービスII (第10回) 2007年11月28日 植田龍男.
エンタープライズアプリケーション II 第10回 / 2006年7月23日
Mavenによる プロジェクト管理 近畿大学理工学部 情報学科3年  小野実.
JSFによるWebアプリケーション開発 第11回
Servlet J2EE I 第8回 /
WSDL と JAX-RPC 年10月13日 Webサービス II (第3回) WSDL と JAX-RPC 年10月13日.
JavaServlet&JSP入門 01K0018 中村太一.
稚内北星学園大学 情報メディア学部 助教授 安藤 友晴
タグライブラリ ソフトウェア特論 第6回.
タグライブラリとJSP J2EE I 第10回 /
MSBuild 色々出来るよ 2011/04/02 お だ.
WebサービスII (第8回) 2007年11月14日 植田龍男.
ビューとコントローラ.
HTTPプロトコルとJSP (1) データベース論 第3回.
タグライブラリとJSP J2EE II 第2回 2004年10月7日 (木).
JavaBeans とJSP データベース論 第5回.
JSFによるWebアプリケーション開発 第6回
エンタープライズアプリケーション II 第7回 / 2006年7月9日
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
JSPの作成 J2EE II 第3回 2005年4月10日.
RMI ソフトウェア特論 第6回 /
Javaによる Webアプリケーション入門 第5回
プログラミング演習3 第2回 GUIの復習.
2004年度 サマースクール in 稚内 JavaによるWebアプリケーション入門
2003年度 データベース論 安藤 友晴.
Webサービスを使った クライアント・プログラム
第1回.リレーショナルデータベースを使ってみよう
Webアプリケーションの方向性 データベース論 第13回.
理学部 情報科学科 指導教官 千葉 滋 助教授 学籍番号 03_03686 内河 綾
2006年度 東京サテライト校 エンタープライズ・アプリケーション II
Javaによる Webアプリケーション入門 第6回
プログラミング演習3 第2回 GUIの復習.
Javaによる Webアプリケーション入門 第2回
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
Javaによる Webアプリケーション入門 第11回
Servlet ソフトウェア特論 第7回.
Servlet J2EE I (データベース論) 第12回 /
Servlet データベース論 第6回.
JSFによるWebアプリケーション開発 第3回
JXTA Shell (2) P2P特論 (ソフトウェア特論) 第5回 /
EntityManager と EJB QL EJB 3.0 コース 第8回 2006年8月5日.
Webアプリケーションと JSPの基本 ソフトウェア特論 第4回.
C#プログラミング実習 第3回.
Javaによる Webアプリケーション入門 第8回
情報基礎演習I(プログラミング) 第8回 6月8日 水曜5限 江草由佳
Javaによる Webアプリケーション入門 第4回
コレクション・フレームワーク J2EE I (データベース論) 第6回 /
コレクション・フレームワーク データベース論 第7回.
Annotation EJB 3.0 コース 第3回 2006年8月4日.
サブゼミ第7回 実装編① オブジェクト型とキャスト.
WebアプリケーションとTomcat ― これまでの復習とこれからの予習 ―
JSPの基本 データベース論 第2回.
Action Method の実装 J2EE II 第9回 2004年12月2日.
Jakarta Struts (1) ソフトウェア特論 第10回.
稚内北星学園大学 情報メディア学部 専任講師 安藤 友晴
JSPの基本 J2EE I (データベース論) 第8回 /
JSFによるWebアプリケーション開発 第5回
JSFによるWebアプリケーション開発 第7回
MVCモデル2による Webアプリケーション
Presentation transcript:

Jakarta Struts (2) ソフトウェア特論 第11回

ここでの内容 Struts でのプログラミング手法について復習する。 「図書検索アプリケーション」に機能を追加する。

Struts でのプログラミング(復習) Webブラウザからの要求は、すべて「ActionServlet」が受け取る。(用意されている) パラメータは「ActionForm Bean」へ (作成する) ビジネスロジックは「Actionクラス」で (作成する)。処理結果は Model に格納。 表示は JSP で。Strutsのタグライブラリを使う。 Action クラスやJSPを呼び出す順序やタイミングは「アクションコンフィグレーションファイル」で。

図書検索アプリケーションから (1) 検索語入力画面 タグライブラリを使って、JSP で記述する。 検索したい言葉を入力して、ボタンを押すと、“/searchBook” に処理が移る。 <html:form action="/searchBook"> <html:text property="ndc" size="20“ /> <html:submit property=“submit” value=“Go” /> </html:form>

図書検索アプリケーションから (2) 検索処理の呼び出し “/searchBook” では、まず “ActionServlet” に。 入力フィールドにある検索語は、ActionFormBean である searchForm に入る。 検索処理は SearchBookAction という Actionクラスに。 <action-mappings> <action path="/searchBook" type="SearchBookAction" name="searchForm"         scope="request"> <forward name="success"         path="/list.jsp"/> </action> </action-mappings>

図書検索アプリケーションから (3) 検索処理の実行 Actionクラスの execute メソッドで検索を実行 結果は Bean に格納して HttpSession に このメソッドの返値によって、list.jsp への遷移が決まる。 <action-mappings> <action path="/searchBook" type="SearchBookAction" name="searchForm"         scope="request"> <forward name="success"         path="/list.jsp"/> </action> </action-mappings> return( mapping.findForward(“success”));

図書検索アプリケーションから (4) 検索結果の表示 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>

Struts と Ant Struts を動かしたり、コンパイルしたりするには、たくさんのライブラリや設定ファイルが必要になる。

Ant Java でできているビルドツール。Unix で言えばmakeのようなもの。 Javaでできているので、環境に依存しない。 標準で多くの処理が組み込みに。コンパイル、パッケージングなどが手軽に行える。 処理内容の記述は “build.xml” というXMLファイルに。

Ant の使い方 Ant の zip ファイルを開く。 環境変数 ANT_HOME を設定する。 %ANT_HOME%\bin にパスを通す。 build.xml があるフォルダに移動して、次のコマンドを実行する。 ant compile あるいは ant war

図書検索アプリケーションを動かす (1) library-struts1.jar という Jar ファイルを取得する。このファイルには、必要なソースファイルやライブラリが入っている。 Jar ファイルを開く jar xvf library-struts1.jar Ant を実行 ant compile ant war

図書検索アプリケーションを動かす (2) Ant の実行によって、build.xml があるフォルダの1つ上の階層に、 library-struts1.war というファイルができる。 このファイルに、必要なクラスやライブラリが含まれている。 このファイルを Tomcat (%CATALINA_HOME%\webapps) に置く。 Tomcat を起動すると、自動的に library-struts1.war が展開され、Webアプリケーションが使えるようになる。

レポート課題 1月31日まで 2題のうちから、1題を選択して解答してください。

「図書検索アプリケーション」に 詳細表示機能を追加する どのようなプログラムを追加する必要があるのか? 特に、どのようにリンクを貼ればよいのか?

Struts でのページ遷移の考え方 ページ遷移 = あるページ  他のページ ページ遷移の2つの方法 ページ遷移 = あるページ  他のページ ページ遷移の2つの方法 リンクをクリック フォームのボタンを押す (前回やりました) Struts では、すべてActionクラスを通してから画面の遷移を行う それによって、遷移の情報を struts-config.xml に記述できるから。

追加するプログラム リスト表示をする JSP (list.jsp) から、詳細表示をするプログラムに処理を移す。 list.jsp からの要求を処理するための Action クラスが必要

追加する設定 プログラムを追加したら、struts-config.xml の記述が必要 Action クラスを追加するので、action 要素の追加が必要 JSP上のリンクから Action クラスを呼ぶには、global-forwards 要素の追加が必要 <global-forwards> <forward name=“search/detail” path=“/searchBookDetail.do” /> </global-forwards>

リンクの方法 (1) 本の特定 リンクのクリックによって、どの本の詳細データを表示するか Web サーバ側に伝える必要あり。 どの本をクリックしたか特定できる情報をパラメータとして設定する必要がある。 この場合、テーブルの主キーは id であるので、パラメータに id を追加 /searchBookDetail.do?id=12345

リンクの方法 (2) モデルの変更 モデルには、mapping というプロパティを用意する。 Name = “id” Value = “12345” public class BookData { private Map mapping; public void setId(String id) { this.id = id; setMapping(); } public Map getMapping() { return mapping; public void setMapping() { mapping.put(“id”, id);

java.util.Map (1) 「キー」と「値」がペアになっているコレクション キーの重複はない。 実装クラスには java.util.HashMap java.util.WeakHashMap java.util.Hashtable HashMap や WeakHashMap は同期化されていない。

java.util.Map (2) // 生成 Map map = new HashMap(); // 登録 (“1000” がキー、“夏目漱石” が値) map.put(“1000”, “夏目漱石”); // キーから値を取得 String value = (String)map.get(“1000”);

リンクの方法 (3) リンクの作成 mapping の指定によって、この部分をクリックすると、自動的に id=12345 といったパラメータが付加される。 <html:link forward="search/detail" name="book" property="mapping"> <bean:write name="book" property="title" /> / <bean:write name="book" property="author" /> </html:link>