Intra-Mart分页之DBListPaging

DynamicTable   VS   DBListPaging  :

 

两者都可以实现分页显示,但是也有区别:

 

DynamicTable标签是从request或者session中取数据;

 

DBListPaging标签可以从DB中的指定表中取数据(可以是单独一张表、也可以是多张表)。该标签可以指定数据源、可以指定每页显示多少条记录、可以指定一次显示多少个分页链接。。。

 

 

 

说明:我用Google进行搜索,Intra-Mart分页方面的中文资料几乎没有,修改关键字为  intra-mart ページング

 

下述介绍性内容转载自:

 

http://203.208.37.104/search?q=cache:hPK9SDMIVOcJ:www.intra-mart.co.jp/apilist/v60/j2ee_base/interface/j2ee_framework_tag.html+intra-mart+%E3%83%9A%E3%83%BC%E3%82%B8%E3%83%B3%E3%82%B0&hl=zh-CN&ct=clnk&cd=3&gl=cn&st_usg=ALhdy29IyVQnPPCjiwfwteieYy1jdM7ZLg

 

 

DBListPaging

ベースモジュール(またはフレームワーク)のデータベース設定(またはマルチデータベース設定)で設定されたデータベースを参照し、データを読み込み、動的にテーブルの作成をします。
ページング 機能を利用する場合は、自動的に改ページのリンクを出力し、ユーザ指定のページサイズ・インデックスサイズで、改ページ機能を提供します。

DynamicTable タグとの違いは、テーブルにバインドするListオブジェクトの取得先です。DynamicTableに利用できるListはrequestまたは session内のListオブジェクトであればよいが、DBListPagingの場合は、ベースモジュール(またはフレームワーク)のデータベース設 定で設定されたDBのテーブルからデータを取得します。
それに、ソート機能を利用する場合は、DynamicTableはList内のデータを比較してソートしますが、DBListPagingの場合は、SQL文のorder部を再構成してDBの再検索でソートします。

このタグで生成されたテーブルは、CellDataSelector・RowDataSelector・ColumnDataSelector・Sorting・LineHighLightなどのタグ内で利用することができます。

Tagボディ JSP
制約 ・Columnタグと組み合わせて使用する必要があります。
・同じページ内のtableID(DynamicTableを利用する場合のtableIDも同様)を重複することはできません。
・tableName・dbColumns・where・orderなどのSQL文関連の属性の内容はSQL文規約に従う必要があります。
属性 名前 必須 実行時評価
tableID YesYes
このテーブルを一意識別するためのID。必ず指定してください。同じ画面で複数のDBListPaging(またはDynamicTableと併用)を利用する場合は、それぞれ違うtableIDを指定する必要があります。
tableName YesYes
データ取得対象テーブル名。複数テーブルからデータを取得したい場合は、SQL文規約で複数テーブルを指定することができます。
dbColumns NoYes
デー タ取得対象カラム名。複数カラムからデータを取得したい場合は、SQL文規約で指定することができます(","(カンマ)区切りでカラムを指定する)。未 指定の場合は、"*"を利用して、tableNameで指定されたテーブルからすべてのカラムのデータを取得します。
where NoYes
データ取得用のSQL文の条件部。SQL文規約に従う必要があります。
order NoYes
デー タ取得用のSQL文のソート部。SQL文規約に従う必要があります。データ初期取得時は、この属性で指定された内容でデータをソートします。但し、サブタ グのColumnタグのsortable属性を"true"に設定する場合、データをソートする時は、指定カラムをソート基準でSQL文のorder部を 再構成してDBを再検索しますので、ここのorder属性の指定が無視されます。
group NoYes
ベースモジュール(またはフレームワーク)のデータベース(またはマルチデータベース)設定で設定されたデータベース参照名です。未指定の場合、ログインユーザのログイングループIDを利用します。
width NoYes
生成されたテーブルの幅。デフォルトは"100%"。HTMLのTABLEのwidth属性に相当します。
border NoYes
生成されたテーブルの幅。デフォルトは"1"。HTMLのTABLEのborder属性に相当します。
styleClass NoYes
生成されたテーブルに適用するCSSのクラス名。HTMLのTABLEのclass属性に相当します。
paging NoYes
該当テーブルに対して、ページング 機能を利用するかどうかの設定。"true"に設定することで、指定サイズのテーブルを出力し、指定位置に改ページ表示用のリンクを表示します。"false"の場合は、自動ページング 機能を利用せず、リスト全体の内容をテーブルに表示します。デフォルトは"true"。
pageSize NoYes
自動ページング 機能を利用する場合のページ毎の表示行数。デフォルトは"10"。
indexSize NoYes
改ページ用のページインデックス数の最大表示個数。デフォルトは"8"。
indexLocation NoYes
改ページ用のページインデックスの表示場所。テーブルの上("top")、下("bottom")、または両方("both")を指定することができます。デフォルトは"bottom"。
application NoYes
改ページリンクを生成する時に使い、該当タグの利用画面を表示するためのService FrameworkのApplication ID。画面JSPがim-J2EE FrameworkのService Frameworkを利用して画面遷移する場合、該当画面へ遷移するためのApplication IDです。service属性と同時に指定する必要があります。
service NoYes
改ページリンクを生成する時に使い、該当タグの利用画面を表示するための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

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值