DynamicTable VS DBListPaging :
两者都可以实现分页显示,但是也有区别:
DynamicTable标签是从request或者session中取数据;
DBListPaging标签可以从DB中的指定表中取数据(可以是单独一张表、也可以是多张表)。该标签可以指定数据源、可以指定每页显示多少条记录、可以指定一次显示多少个分页链接。。。
说明:我用Google进行搜索,Intra-Mart分页方面的中文资料几乎没有,修改关键字为 intra-mart ページング
下述介绍性内容转载自:
DBListPaging | |||
ベースモジュール(またはフレームワーク)のデータベース設定(またはマルチデータベース設定)で設定されたデータベースを参照し、データを読み込み、動的にテーブルの作成をします。 DynamicTable タグとの違いは、テーブルにバインドするListオブジェクトの取得先です。DynamicTableに利用できるListはrequestまたは session内のListオブジェクトであればよいが、DBListPagingの場合は、ベースモジュール(またはフレームワーク)のデータベース設 定で設定されたDBのテーブルからデータを取得します。 | |||
Tagボディ | JSP | ||
制約 | ・Columnタグと組み合わせて使用する必要があります。 ・同じページ内のtableID(DynamicTableを利用する場合のtableIDも同様)を重複することはできません。 ・tableName・dbColumns・where・orderなどのSQL文関連の属性の内容はSQL文規約に従う必要があります。 | ||
属性 | 名前 | 必須 | 実行時評価 |
tableID | Yes | Yes | |
このテーブルを一意識別するためのID。必ず指定してください。同じ画面で複数のDBListPaging(またはDynamicTableと併用)を利用する場合は、それぞれ違うtableIDを指定する必要があります。 | |||
tableName | Yes | Yes | |
データ取得対象テーブル名。複数テーブルからデータを取得したい場合は、SQL文規約で複数テーブルを指定することができます。 | |||
dbColumns | No | Yes | |
デー タ取得対象カラム名。複数カラムからデータを取得したい場合は、SQL文規約で指定することができます(","(カンマ)区切りでカラムを指定する)。未 指定の場合は、"*"を利用して、tableNameで指定されたテーブルからすべてのカラムのデータを取得します。 | |||
where | No | Yes | |
データ取得用のSQL文の条件部。SQL文規約に従う必要があります。 | |||
order | No | Yes | |
デー タ取得用のSQL文のソート部。SQL文規約に従う必要があります。データ初期取得時は、この属性で指定された内容でデータをソートします。但し、サブタ グのColumnタグのsortable属性を"true"に設定する場合、データをソートする時は、指定カラムをソート基準でSQL文のorder部を 再構成してDBを再検索しますので、ここのorder属性の指定が無視されます。 | |||
group | No | Yes | |
ベースモジュール(またはフレームワーク)のデータベース(またはマルチデータベース)設定で設定されたデータベース参照名です。未指定の場合、ログインユーザのログイングループIDを利用します。 | |||
width | No | Yes | |
生成されたテーブルの幅。デフォルトは"100%"。HTMLのTABLEのwidth属性に相当します。 | |||
border | No | Yes | |
生成されたテーブルの幅。デフォルトは"1"。HTMLのTABLEのborder属性に相当します。 | |||
styleClass | No | Yes | |
生成されたテーブルに適用するCSSのクラス名。HTMLのTABLEのclass属性に相当します。 | |||
paging | No | Yes | |
該当テーブルに対して、ページング 機能を利用するかどうかの設定。"true"に設定することで、指定サイズのテーブルを出力し、指定位置に改ページ表示用のリンクを表示します。"false"の場合は、自動ページング 機能を利用せず、リスト全体の内容をテーブルに表示します。デフォルトは"true"。 | |||
pageSize | No | Yes | |
自動ページング 機能を利用する場合のページ毎の表示行数。デフォルトは"10"。 | |||
indexSize | No | Yes | |
改ページ用のページインデックス数の最大表示個数。デフォルトは"8"。 | |||
indexLocation | No | Yes | |
改ページ用のページインデックスの表示場所。テーブルの上("top")、下("bottom")、または両方("both")を指定することができます。デフォルトは"bottom"。 | |||
application | No | Yes | |
改ページリンクを生成する時に使い、該当タグの利用画面を表示するためのService FrameworkのApplication ID。画面JSPがim-J2EE FrameworkのService Frameworkを利用して画面遷移する場合、該当画面へ遷移するためのApplication IDです。service属性と同時に指定する必要があります。 | |||
service | No | Yes | |
改ページリンクを生成する時に使い、該当タグの利用画面を表示するためのService FrameworkのService ID。画面JSPがim-J2EE FrameworkのService Frameworkを利用して画面遷移する場合、該当画面へ遷移するためのService IDです。application属性と同時に指定する必要があります。 | |||
内部タグ | Columnタグ | ||
テーブルにバインドするリストの内部の要素を表します。 | |||
使用例 | データベースからデータを取得し、テーブルにバインドします | ||
<imtag:DBListPaging tableID="usertable" tableName="b_m_user" dbColumns="user_cd,user_name" order="user_cd desc" styleClass="test" pageSize="10" indexLocation="both" indexSize="10"> <imtag:Column attribute="user_cd" title="Code" headerClass="header" styleClass="test" sortable="true"/> <imtag:Column attribute="user_name" title="Name" headerClass="header" sortable="true"/> </imtag:DBListPaging> 複数テーブルからデータを取得する場合の例: <imtag:DBListPaging tableID="userportaltable" tableName="b_m_user a,b_m_user_portal b" dbColumns="a.user_cd,a.user_name,b.layout_cls" where="a.user_cd=b.user_cd" order="a.user_cd desc" styleClass="test" pageSize="10" indexLocation="both" indexSize="10"> <imtag:Column attribute="user_cd" title="Code" /> <imtag:Column attribute="user_name" title="Name" /> <imtag:Column attribute="layout_cls" title="Layout" /> </imtag:DBListPaging> |
本地用的jsp代码段:
<body>
<!--
<imtag:DBListPaging tableID="usertable" tableName="employee"
dbColumns="emp_cd,emp_name_kanji" order="emp_cd desc"
styleClass="test" pageSize="10" indexLocation="both"
indexSize="10">
<imtag:Column attribute="emp_cd" title="Code" headerClass="header"
styleClass="test" sortable="true"/>
<imtag:Column attribute="emp_name_kanji" title="Name" headerClass="header"
sortable="true"/>
</imtag:DBListPaging>
-->
<!-- データベースからデータを取得し、テーブルにバインドします -->
<!--
<imtag:DBListPaging tableID="usertable" tableName="b_m_menu_argument_b"
dbColumns="menu_id,argument_name,record_date" order="menu_id desc"
styleClass="test" pageSize="10" indexLocation="both"
indexSize="10">
<imtag:Column attribute="menu_id" title="Code" headerClass="header"
styleClass="test" sortable="true"/>
<imtag:Column attribute="argument_name" title="Name" headerClass="header"
sortable="true"/>
<imtag:Column attribute="record_date" title="RecordDate" headerClass="header"
sortable="true"/>
</imtag:DBListPaging>
-->
<!-- 複数テーブルからデータを取得する場合の例: -->
<imtag:DBListPaging tableID="userportaltable"
tableName="employee a,post b"
dbColumns="a.emp_cd,a.emp_name_kanji,b.post_name"
where="a.post_cd=b.post_cd"
order="a.emp_cd asc" styleClass="test" pageSize="4"
indexLocation="both" indexSize="10">
<imtag:Column attribute="emp_cd" title="Code" />
<imtag:Column attribute="emp_name_kanji" title="EmployName" />
<imtag:Column attribute="post_name" title="PostName" />
</imtag:DBListPaging>
</body>
测试结果:
全件数:13 全ページ数:4 表示中:1 から 4
次へ /最後 1 2 3 4
Code | EmployName | PostName |
---|---|---|
emp001 | 山田 華子 | 営業 |
emp002 | 山田 太郎 | 開発 |
emp003 | 田中 一郎 | 経理 |
emp004 | 田中 次郎 | 営業 |
全件数:13 全ページ数:4 表示中:1 から 4
次へ /最後 1 2 3 4