- PR -

x:tabChangeListenerの取得が出来ない

1
投稿者投稿内容
センエツ
会議室デビュー日: 2005/12/19
投稿数: 1
投稿日時: 2005-12-19 18:39
はじめまして。お世話になります。

TomCat と JSF で開発を行っています。
現在、タブ機能を実装した画面を開発しているのですが、
タブは表示できたのですが、タブを切り替えても<x:tabChangeListener>
が全く反応してくれません。試しにリスナを実装したクラスにコンストラクタ
を設けてデバッグしてみると画面の初期表示の際にブレークポイントに引っか
かってくれます。
ネットでいろいろ検索してみたのですが、有効な情報がつかめず途方にくれて
おります。
どなたかご存知の方がいらっしゃいましたらご教示ください。

(JSP)(一部抜粋)
<x:panelTabbedPane bgcolor="#aaeeee">
 <x:tabChangeListener type="?????.????.????Listener"/>
 <x:panelTab id="tab1" label="tab1">
 </x:panelTab>
 <x:panelTab id="tab1" label="tab2">
 </x:panelTab>
</x:panelTabbedPane>

(リスナーjava)
package ?????.????;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import java.io.Serializable;
import org.apache.myfaces.custom.tabbedpane.TabChangeListener;
import org.apache.myfaces.custom.tabbedpane.TabChangeEvent;

public class ????Listener implements Serializable, TabChangeListener {
 public ????Listener(){
  int i=0; //←ここにくるのは確認できました
 }

 //↓タブ切替時ここにきてくれません。
 public void processTabChange(TabChangeEvent tabChangeEvent)
  throws AbortProcessingException{

  int oldPage = tabChangeEvent.getOldTabIndex();
  System.out.println("遷移前のタブ = " + oldPage);
 }
}


[ メッセージ編集済み 編集者: センエツ 編集日時 2005-12-19 18:40 ]
henachoco
常連さん
会議室デビュー日: 2005/11/21
投稿数: 29
お住まい・勤務地: 新ハンドル:t_yamo
投稿日時: 2005-12-21 18:08
解決策は見つかりませんでしたが、参考情報です。

何となくサンプルを作って動かしてみたところ、タブ切り替えをクライアントサイドでやっているようでしたので、サーバサイドで動かす属性を探すためにMyFacesのTLDを参照してみました。
http://myfaces.apache.org/tlddoc/tomahawk/

どうやら「panelTabbedPane」の「serverSideTabSwitch」を「true」にすればよさそうです……が、SVNリポジトリを見てみるとこの属性が追加されたのはRev.329800(2005/10/31 20:33:29)であり、最新リリースのMyFaces1.1.1にも含まれていないようです。
https://svn.apache.org/repos/asf/myfaces/tomahawk/trunk/

ざくざくっと見たところ、1.0.9の頃はタブ部分がSubmitボタンになっていたようですので(すみません。ちゃんと確認してないので嘘かもしれません)、1.0.9を利用するか、NightlyBuildを使うか、次期リリースを待つかする必要がありそうです。

あと、OracleのADF FacesがApacheに寄贈されましたので、急ぎでないのであればMyFacesにADFが取り込まれるのを待っても良いかもしれません。
1

スキルアップ/キャリアアップ(JOB@IT)