以下のようにして画面を複数の領域に分割し、各領域ごとに入出力ページを作成することができます。
制御ページに領域の数だけuji:includeタグを記述します。uji:includeタグのpaneアトリビュートに領域名を指定します。
領域を分割するための制御ページの例
<%@ page contentType= "text/html; charset=shift_jis" %> <%@ page errorPage="error.jsp" %> <%@ taglib uri="uji-taglib" prefix="uji" %> <HTML> <HEAD><TITLE>領域分割サンプル</TITLE></HEAD> <BODY> <uji:dispatch /> <uji:include pane="head" />
<uji:include pane="body" /> </BODY> </HTML>
この例では、head, bodyという2つの領域を定義しています。
それぞれの領域に使用するデータBeanと入出力ページを作成します。
各領域に画面を表示させるためには、ビジネスクラスのメソッドで以下の処理を実行します。
表示するデータをデータBeanに格納します。
データBeanのsetVerbメソッドで表示モードを設定します。表示モードが不要な場合はこの処理を省略できます。
com.fujitsu.uji.DispatchContextクラスのsetResponseBeanメソッドで、データBeanを各領域に割り当てます。
ビジネスクラスの例
import com.fujitsu.uji.GenericHandler; public class SampleHandler extends GenericHandler { .... public void startup(DispatchContext context) { BodyBean bodyBean = new BodyBean(); bodyBean.setVerb("input"); HeadBean headBean = new HeadBean(); .... context.setResponseBean("head",headBean);
context.setResponseBean("body",bodyBean); } }
head領域にHeadBeanを、body領域にBodyBeanを割り当てています。ページマップでHeadBeanクラス、表示モード無しに対応付けられた入出力ページがhead領域に表示され、BodyBeanクラス、表示モードinputに対応付けられた入出力ページがbody領域に表示されます。
各領域の画面は、対応するuji:includeタグの位置に表示されます。領域の位置関係を指定したい場合は、TABLEタグやスタイルシートを使います。
TABLEタグで領域の位置を調整する例
<%@ page contentType= "text/html; charset=shift_jis" %> <%@ page errorPage="error.jsp" %> <%@ taglib uri="uji-taglib" prefix="uji" %> <HTML> <HEAD><TITLE>領域分割サンプル</TITLE></HEAD> <BODY> <uji:dispatch /> <TABLE>
<TR>
<TD><uji:include pane="head" /></TD>
<TD><uji:include pane="body" /></TD>
</TR>
</TABLE> </BODY> </HTML>
この例では、head領域が左に、body領域が右に表示されます。
DIVタグとスタイルシートで領域の位置を調整する例
<%@ page contentType= "text/html; charset=shift_jis" %> <%@ page errorPage="error.jsp" %> <%@ taglib uri="uji-taglib" prefix="uji" %> <HTML> <HEAD> <TITLE>領域分割サンプル</TITLE> <STYLE TYPE="text/css">
<!--
DIV.header_x{ position:absolute;
left:0px;
width:500px;}
DIV.body_x{ position:absolute;
left:560px;
width:500px;}
-->
</STYLE>
</HEAD> <BODY> <uji:dispatch /> <DIV CLASS="header_x">
<uji:include pane="head" />
</DIV>
<DIV CLASS="body_x">
<uji:include pane="body" />
</DIV> </BODY> </HTML>
この例では、head領域が左に、body領域が右に表示されます。スタイルシートで領域の表示位置と横幅を指定しています。
関連項目