@IT会議室は、ITエンジニアに特化した質問・回答コミュニティ「QA@IT」に生まれ変わりました。ぜひご利用ください。
- PR -

JSF tomahawk 1.1.8のtabChangeListenerの使い方について

1
投稿者投稿内容
Pianoman
常連さん
会議室デビュー日: 2003/05/24
投稿数: 26
投稿日時: 2009-04-07 18:40
現在、JSFを使ったアプリケーションを開発しています。
5つのタブを持ったpanelTabbedPaneのページで、クライアントユーザーが使いたいパネルをクリックすることで、パネルが切り替えられた時、切り替えられたパネルを認識してパネル毎に処理を分けようと考えています。
操作性を統一したいので、操作ボタン(登録、変更、削除・・・など)はpanelTabbedpaneタグの中<>〜</>にあり、各タブで共通化させています。
※タブ毎に設けてはいない、ということです。
タブが切り替えられたこと、切り替え前後のタブを認識するためにはtabChangeListenerを使えば出来そうな気がしていますが・・・

タブを切り替えてみても、processTabChangeメソッドが実行された形跡がありません。

【JSP内のタブ記述部分】

<t:panelTabbedPane serverSideTabSwitch="true">
:
 <t:panelTab>
:
 </t:panelTab>
:
 <t:tabChangeListener type="jp.co.xxxx.zzzz.SampleTabChangeListener"
</t:panelTabbedPane>

【以下はクラスのコード】
package jp.co.xxxx.zzzz;

import java.io.Serializable;

import javax.faces.event.AbortProcessingException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.myfaces.custom.tabbedpane.TabChangeEvent;
import org.apache.myfaces.custom.tabbedpane.TabChangeListener;

public class SampleTabChangeListener implements TabChangeListener,
Serializable {

// ログ
private static final Log log = LogFactory.getLog(SampleTabChangeListener.class);

public SampleTabChangeListener(){
log.debug("Initiate Class");
}
@Override
public void processTabChange(TabChangeEvent event)
throws AbortProcessingException {
// 切り替え前のタブ名取得
log.debug("Phase ID = " + event.getPhaseId());
log.debug("Old Tab Index = " + event.getOldTabIndex());
// 切り替え後のタブ名取得
log.debug("New Tab Index = " + event.getNewTabIndex());
log.debug("Event Index = " + event.toString());

}
}

これだけでは機能しないのでしょうか?
他に何か足りない設定がありますでしょうか?
1

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