Apcoordinator ユーザーズガイド |
目次 |
付録D Strutsとの連携 | > D.2 UJIタグを使ったプログラミング |
UJIタグを利用する場合は、まずWebアプリケーション環境定義ファイル (web.xml
) を編集します。
次の例のようにUJIタグ用のタグライブラリディスクリプタファイル (ujiall.tld
) の場所をtaglib
要素で指定してください。
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd"> <web-app> ... <taglib> <taglib-uri>uji-taglib</taglib-uri> <taglib-location>/WEB-INF/ujiall.tld</taglib-location> </taglib> ... </web-app>
JSPを編集します。まず、"uji:"という接頭辞でUJIタグを使うことをtaglib
ディレクティブで宣言します。
次に、データBeanのプロパティを参照するためにuji:useBean
タグを記述します。このとき必ずscope
アトリビュートと
request
アトリビュートを指定してください。
scope
アトリビュートにはデータBeanを設定したスコープを、request
アトリビュートには"true
"を指定します。
<%@ taglib uri="uji-taglib" prefix="uji" %> ... <uji:useBean id="myDataBean" cls="mypkg.MyDataBean" scope="request" request="true" />
以上でUJIタグを利用する準備が整いました。 Strutsアプリケーションで利用できるUJIタグは、利用する場所によって異なります。以下、それぞれの場合について説明します。
uji:form
内で利用する場合
uji:form
内でUJIタグを利用する場合は、uji:form
のコンテントとして記述できるすべてのUJIタグを利用することができます。
ただし、Strutsタグを利用することはできません。またuji:form
のbeanId
アトリビュートにはuji:useBean
のid
アトリビュートで指定した値を使用してください。
次に使用例を示します。
<uji:useBean id="myDataBean" cls="mypkg.MyDataBean" scope="request" request="true" /> <uji:form name="myform" beanId="myDataBean" action="MyAction.do" > <uji:tableView bean="myDataBean" property="table" borderWidth="1" ruleWidth="1" dataEditable=";;true" /> <input name="submit" type="submit" value="submit"> </uji:form>
uji:form
タグのaction
アトリビュートにはサーブレットのURLを記述してください。
struts-config.xmlのaction
タグに指定した名前ではありません。
html:form
を利用する場合html:form
内でUJIタグを利用する場合は、html:form
直下のコンテントとしてコンポーネントタグを利用することができます。
ただし、UJIタグリファレンスで、uji:form
タグのコンテントで使用した場合のみ有効と記載されているアトリビュートは使用できません。このようなアトリビュートを利用する場合はuji:form
を使用してください。
また、値を更新するためにHTMLのINPUT
タグで隠しパラメタ"uji.id
"を送信する必要があります。
"uji.id
"に指定する値はuji:useBean
のid
アトリビュートで指定した値を使用してください。
次に使用例を示します。
<uji:useBean id="myDataBean" cls="mypkg.MyDataBean" scope="request" request="true" /> <html:form name="myForm" action="myAction" type="mypkg.MyFormBean"> <input type="hidden" name="uji.id" value="myDataBean" /> <uji:tableView bean="myDataBean" property="table" borderWidth="1" ruleWidth="1" dataEditable=";;true" /> <html:submit value="決定" /> </html:form>
html:form
内でuji:anchor
タグを利用する場合は、フォーム指定モードで使用してください。
uji:form
やhtml:form
などのフォームの外でUJIタグを利用する場合は、フォーム外で利用可能な次のUJIタグを使用することができます。
uji:include
uji:includedBody
uji:useBean
uji:getProperty
uji:resourceText
ただし、html:html
タグを除いてStrutsタグとUJIタグを入れ子にすることはできません。
uji:include
を使用する場合の注意事項
uji:include
を使用する場合は次の点に注意してください。
- ページマップの記述
uji:include
を使用してインクルードするJSPに合わせてページマップを作成する必要があります。
次の例では、HeaderBean
に対してheader.jsp
を対応させています。
mypkg.HeaderBean;=header.jsp
uji:useBean
の記述
uji:include
を使用するJSPにuji:useBean
を記述する必要があります。
このとき、uji:useBean
でscope
アトリビュートとrequest
アトリビュートを指定する必要があります。scope
アトリビュートにはデータBeanを設定したスコープを、request
アトリビュートには"true
"を指定してください。
また、uji:useBean
のid
アトリビュートとuji:include
のpane
アトリビュートにはデータBeanを設定した際のキーを指定してください。
... <uji:useBean id="header" cls="mypkg.HeaderBean" scope="session" request="true" /> <uji:include pane="header" /> ...
目次 |