jsf ActionListener 查找正确的UIComponent

来源:互联网 发布:qt初学者 知乎 编辑:程序博客网 时间:2024/05/15 13:29
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{@Overridepublic 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");}}

0 0
原创粉丝点击