!!!Struts2 単純なアプリケーションの作成 タグの利用 [Struts2] {{amazon 4839928444}} *参照 **http://struts.apache.org/2.x/docs/using-tags.html *サンプル **{{ref struts2_use_tag.lzh}} ---- [Hello Worldアプリケーションの作成|Struts2 単純なアプリケーションの作成 Hello World]では、簡単なメッセージをページに出力した。 「タグの利用」で、アプリケーションの他のアクションへのリンクを含むページを作成する。 Webアプリケーションは伝統的なウェブサイトとは、動的なレスポンスを生成できる点で異なる。ページからの動的データの参照を簡単にするために、フレームワークはタグセットを提供する。いくつかのタグは、値を与えることにより、標準のHTMLの模倣をする。その他は、標準ではないが有用である。 Strutsタグのひとつの使い方として、他のWebリソースへの特にローカルアプリケーションの他のリソースへのリンクを生成することがある。 !!リンクを張る ::ウェブアプリケーションでは、通常、他のページへリンクを利用する。StrutsのWelcomeページに、他のアクションへのリンクを追加してみる。 {{ref_image struts_tag_01.JPG}} <%@ taglib prefix="s" uri="/struts-tags" %> <%@ page pageEncoding="UTF-8"%> <%@ page contentType="text/html;charset=UTF-8"%> ようこそ " rel="stylesheet" type="text/css"/>

メニュー

::ロケールの変更にもリンクはよく利用される。ユーザのロケールを変更して、アプリケーションリソースからメッセージを表示させてみる。 {{ref_image struts_tag_02.JPG}}

言語

::どのように動くのか "%{url}"は、s:url タグにより評価されたURLとなる。Welcome、HelloWorldページでは、2つの別のStrutsタグでリンクを生成している。 *リソースリンク *ダイレクトリンク *パラメータつきリンク !リソースリンク まずは、head 要素で、HTMLリンクタグにURLへの参照を埋め込むのにurlタグを利用している。 " rel="stylesheet" type="text/css"/> ※ この参照は、絶対参照である。相対参照の解決を心配することなくページを移動できる。 !ダイレクトリンク 上記の「メニュー」セクションで、アクションへの参照のために利用している。
  • ">登録
  • リンクが描画されるとき、タグは自動的に適切な拡張を行うので、それらを自分で埋め込む必要はない。 必要に応じ、タグはJava セッション IDと共にリンクのURLエンコードも行為、リクエストをまたがって、Javaセッションが保たれる。 !パラメータつきリンク 最後は、上図の「言語」セクションでは、urlタグを、param、a タグと共に使用して、リクエストパラメータを含むリンクを作成しています。 en English param タグは、パラメータ "?request_locale=en" を Weclome Action URLに付加し、"url"という名前で保持します。 a タグは、"url"の参照を、ハイパーリンクにセットします。 Any number of parameters can be added to the URI by adding more param etags. !ワイルドカードマッピング Welcomeページが単なるリンクである場合、アクションクラスは必要ない。 しかしながら、それでもマッピングしたほうがよいのは、アクションURIを利用できるからである。 もし、ページにリンクせず、アクションにしかリンクしないなら、あとで簡単にアクションクラスを追加できる。 /welcome.jsp アプリケーションを作るとき、しばしば直接ページにリンクを張ろうとする。 プロトタイピングを簡単に仕上げるため、Welcome エントリをワイルドカードマッピングに変更することができる。 /{1}.jsp !!データ入力フォーム たいていのアプリケーションはデータ入力フォームを利用する。Strutsタグを使えば入力フォームを簡単に作成できる。 {{ref_image struts_tag_03.JPG}} <%@ taglib prefix="s" uri="/struts-tags" %> <%@ page pageEncoding="UTF-8"%> <%@ page contentType="text/html;charset=UTF-8"%> 登録 " rel="stylesheet" type="text/css"/>

    登録

    ::どのように動くのか *JSPエンジンは、taglib のリファレンスをページの先頭から読み、Struts タグを プレフィックス "s"でこのページで利用するためにロードする。 *Strutsタグ(テキストフィールド、パスワード、サブミット)はそれぞれ適切なラベルとコントロールタイプを発行する。 !覚えておくこと Webアプリケーションを記述する上で最も困難な箇所はページのコーディングだ。 フレームワークはページのコーディングをカスタムタグにより、簡単にする。 Struts タグは、フレームワークにより、動的なデータにアクセスできる。 タグは、ページ生成に必要な数多くのマークアップを削減する。 [タグ開発ガイド|http://struts.apache.org/2.x/docs/tag-developers-guide.html] [アクションメンバーへのアクセス、リクエスト属性等をページから取得 OGNL|http://struts.apache.org/2.x/docs/ognl.html] {{amazon 193398807X}}