UI类的两个职责:
1.通过编码来呈现用户接口
2.通过解码当前的HTTP请求来处理用户输入
自定义组件开发者的工具箱:
Javax.faces.component.UIComponent
Javax.faces.webapp.UIComponentTag
Javax.faces.context.FacesContext
Javax.faces.application.Application
Javax.faces.context.ResponseWriter
Javax.faces.component.UIComponent
.void encodeBegin(FacesContext) throws IOException
在JSF生命周期的”呈现响应”阶段,喉咙有当组件的呈现器类型是NULL时,JSF调用该方法,表示组件呈现自己]
getClientId(Facescontext)
返回组件的客户ID.JSF框架利用外围表单(或者外围命名容器)的ID和该组件的ID来创建客户ID
Map getAttributes()
返回组件的映射.使用这个方法来查看,添加,更新,或删除组件的属性.使用这个映射还可以查看或更新属性.
Javax.faces.context.FacesContext
ResponseWriter getResponseWriter()
返回到响应写入器的引用.如果愿意,可以在JSF中插入自己的响应写入器,默认时,JSF使用能够编写HTML标签的响应写入器
Javax.faces.context.ResponseWriter
Void startElement(String elementName,UIComponent component)
为指定的元素编写开始标签.component参数允许工具关联到一个组件及其标记,JSF1.0不支持
Void endElement(String elementName)
为指定的元素编写结束标签
Void writeAttribute(String attributeName,String attributeValue,String componentProperty)
编写一个属性及其值.该方法必须在startElement()和endElement()两个调用之间被调用.componentProperty是对应此属性的组件属性名,主要用于工具.JSF1.0不支持.
一个不错的网址:http://www.exadel.com/tutorial/jsf/jsftutorial-customcomponents.html