[Seasar-user:13689] Re: [teeda] ページ番号を並べるタイプのページング
    Koichi Kobayashi
    [E-MAIL ADDRESS DELETED]
       
    2008年 4月 11日 (金) 00:00:47 JST
    
    
  
小林 (koichik) です.
Date:    Thu, 10 Apr 2008 22:45:10 +0900
From:    "Mitsutaka Sato" <[E-MAIL ADDRESS DELETED]>
To:      seasar-user <[E-MAIL ADDRESS DELETED]>
Subject: [Seasar-user:13687] [teeda] ページ番号を並べるタイプのページング
> 前 1 2 3 4 5 次
> 
> というような形式で表示する方法ってありますでしょうか?
単に表示の話ということであれば,例えば
・HTML
<span id="isPrev">
  <a id="goPrev" href="xxx.html?page=1">前</a>
</span>
<div id="pageItems">
  <span id="isCurrent">
    <span id="page-2">1</span>
  </span>
  <span id="isNotCurrent">
    <a id="goXxx" href="xxx.html?page=1">
      <span id="page-1" te:omittag="true">1</span>
    </a>
  </span>
</div>
<span id="isNext">
  <a id="goNext" href="xxx.html?page=1">次</a>
</span>
・Page クラス
public int current;         //現在のページ番号
public Integer[] pageItems; //ページの情報
public int page;            //Teedaが繰り返しで設定
public int pageIndex;       //Teedaが繰り返しで設定
public String initialize() {
    current = page == 0 ? 1 : page;
    pageItems = new Integer[] { 1, 2, 3, 4, 5 };
    return null;
}
/** 「前」を表示する場合true */
public boolean isPrev() {
    page = current - 1;
    return page > 0;
}
/** 「次」を表示する場合true */
public boolean isNext() {
    page = current + 1;
    return page < pageItems.length + 1;
}
/** 現在のページ番号の場合true */
public boolean isCurrent() {
    return pageIndex + 1 == current;
}
みたいな感じで.
# メーラで書いただけで試してないので怪しいかもですが.
current は現在しているページ番号 (1〜),
pageItems の内容は 1 からのページ番号ということで.
# その他の情報が必要なら (たぶん必要でしょう) 
# Dto の配列または List にしてください.
isPrev()/isNext() で page を設定しているのが
少しトリッキーかも?
リンクをクリックするとパラメータの page が
Page クラスの page プロパティに設定されるので,
initialize() ではそれを current に設定してます.
-- 
<component name="koichik">
    <property name="fullName">"Koichi Kobayashi"</property>
    <property name="email">"[E-MAIL ADDRESS DELETED]"</property>
    <property name="blog">"http://d.hatena.ne.jp/koichik"</property>
</component>
    
    
Seasar-user メーリングリストの案内