0
在一個實現了PhaseListener
接口的jsf bean中,僅在getPhaseId
方法指示的階段之前和之後纔會調用beforePhase
和afterPhase
方法。這種機制只能使我們只選擇一個階段,這兩個方法將在之前和之後被調用。
有沒有辦法告訴JSF這兩種方法(beforePhase
和afterPhase
)呼籲的生命週期方法(在JSF中爲生命週期方法子集調用偵聽器
- 一個子集(而不僅僅是一個)恢復視圖
- 應用請求值
- 工藝驗證
- 更新模型值
- 調用應用
- 渲染響應相
)
public class HelloBean implements PhaseListener {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public void afterPhase(PhaseEvent phaseEvent) {
System.out.println("after phase "+phaseEvent.getPhaseId());
}
@Override
public void beforePhase(PhaseEvent phaseEvent) {
System.out.println("beforePhase "+phaseEvent.getPhaseId());
}
public void testMethod(){
System.out.println("Test Method");
}
@Override
public PhaseId getPhaseId() {
return PhaseId.RESTORE_VIEW;
}
}
感謝您的答案@Alex Fire。但正如你所說,「PhaseListener方法在任何階段之前和之後被調用,但邏輯只在所需階段之前和之後被處理」。我的目的是在每個生命週期階段沒有方法調用開銷的情況下實現這一目標。 – Mostafa