UJIタグを利用する場合は、まずWebアプリケーション環境定義ファイル (web.xml) を編集します。
次の例のようにUJIタグ用のタグライブラリディスクリプタファイル (ujiall.tld) の場所をtaglib要素で指定してください。
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> ... <jsp-config> <taglib>
<taglib-uri>uji-taglib</taglib-uri>
<taglib-location>/WEB-INF/ujiall.tld</taglib-location>
</taglib> </jsp-config> ... </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" /> ...