您的位置:首页 > 产品设计 > UI/UE

jsf ActionListener 查找正确的UIComponent

2015-12-27 14:10 489 查看
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");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: