package com.xiuye.jsf.listener;
import javax.faces.component.UIComponent;
import javax.faces.component.UIOutput;
import javax.faces.component.UIViewRoot;
import javax.faces.component.html.HtmlBody;
import javax.faces.component.html.HtmlForm;
import javax.faces.component.html.HtmlOutputLabel;
import javax.faces.context.FacesContext;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.ActionEvent;
import javax.faces.event.ActionListener;
public class MyActionListener implements ActionListener{
@Override
public void processAction(ActionEvent arg0) throws AbortProcessingException {
FacesContext fc = FacesContext.getCurrentInstance();
UIViewRoot root = fc.getViewRoot();
UIComponent comp = root.findComponent("OK");
/*System.out.println(root.getChildCount());
System.out.println(root.getClientId());
System.out.println(root.getId());
System.out.println(root.getChildren().get(1));
System.out.println(root.getChildren().get(2));
System.out.println(root.getChildren().get(3));*/
//HtmlOutputLabel out = (HtmlOutputLabel)comp;
//xhtml文件跟元素从<html>,h:head, h:body,</html>开始
//jsp从<f:view>开始
for(UIComponent c : root.getChildren())
{
if(c instanceof HtmlBody){
for(UIComponent i : c.getChildren()){
//System.out.println(i);
if(i instanceof HtmlForm){
HtmlOutputLabel label = (HtmlOutputLabel) i.findComponent("OK");
if(label != null){
label.setValue("rrrrrrrrrrrrrrrr");
}
}
}
}
//System.out.println(c);
}
//out.setValue("123456");
}
}
jsf ActionListener 查找正确的UIComponent
最新推荐文章于 2019-02-06 13:07:19 发布