📄 counteractionlistener.java
字号:
package com.jspdev.ch18;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
import javax.faces.event.PhaseId;
import javax.faces.tree.Tree;
import java.util.Iterator;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
public class CounterActionListener implements ActionListener {
public PhaseId getPhaseId() {
debugOut("调用了:getPhaseId");
return PhaseId.APPLY_REQUEST_VALUES;
}
/**
*处理动作
*/
public void processAction(ActionEvent event) {
debugOut("调用了: processAction ");
// 激发动作事件的组件
UIComponent component = event.getComponent();
debugOut
("激发动作事件的组件id: " + component.getComponentId());
// 动作命令
String actionCommand = event.getActionCommand();
debugOut
("动作命令: " + actionCommand);
FacesContext facesContext =
FacesContext.getCurrentInstance();
Tree tree = facesContext.getTree();
UIComponent root = tree.getRoot();
debugOut
("----------- 组件树 -------------");
navigateComponentTree(root, 0);
debugOut
("----------------------------------------");
}
/**
*遍历组件树
*/
private void navigateComponentTree
(UIComponent component, int l) {
Iterator children = component.getChildren();
// indent
for (int i=0; i<l; i++)
System.out.print(" ");
// 打印组件的ID
debugOut(component.getComponentId());
// 遍历组件的Child。
while (children.hasNext()) {
UIComponent child =
(UIComponent) children.next();
navigateComponentTree(child, l + 1);
}
}
private void debugOut(String msg)
{
System.out.println("from CounterActionListener:"+msg);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -