jsf ActionListener 查找正确的UIComponent

94 篇文章 0 订阅
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");
	}

	
	
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值