JSF2自定义组件编程系列 第三部分(二)

2014-11-23 23:41:19 · 作者: · 浏览: 1
Component component) throws IOException {
// render a submit button
ResponseWriter writer = context.getResponseWriter();
writer.startElement("input", component);
writer.writeAttribute("type", "Submit", null);
writer.writeAttribute("name", clientId, "clientId");
writer.writeAttribute("value", "Click Me!", null);
writer.endElement("input");
}

private void encodeOutputField(FacesContext context,UIComponent component) throws IOException {
ResponseWriter writer = context.getResponseWriter();
String hellomsg = (String) component.getAttributes().get("value");
writer.startElement("p", component);
writer.writeText("You entered: " + hellomsg, null);
writer.endElement("p");
}
}

UIComponent的代码,HtmlInput类仅仅继承了UIInput类,所以自然拥有了getFamily,get/setSubmittedValue方法的实现。
package com.freebird.component;

import javax.faces.component.UIInput;

/*
* Describe class HtmlInput here.
*
*
* Created: Wed Dec 29 11:43:18 2010
*
* @author chenshumailto:chenshu@csdesktop">chenshu
* @version 1.0
/
public class HtmlInput extends UIInput {

}

现在看一下两个配置文件:
faces-config.xml中添加


HtmlInput
com.freebird.component.HtmlInput



javax.faces.Input
HtmlInputRenderer
com.freebird.renderer.HtmlInputRenderer

helloworld.taglib.xml中添加

htmlinput

HtmlInput
HtmlInputRenderer


在web应用程序中使用该tag很简单,仅仅是一行: