在Component与Tag自订完成后,这边来看看如何使用它们,首先定义faces-config.xml:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE faces-config PUBLIC "-//Sun Microsystems, Inc.//DTD JavaServer Faces Config 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd">
<faces-config> <component> <component-type> onlyfun.caterpillar.TextWithCmd </component-type> <component-class> onlyfun.caterpillar.UITextWithCmd </component-class> </component> <managed-bean> <managed-bean-name>someBean</managed-bean-name> <managed-bean-class> onlyfun.caterpillar.SomeBean </managed-bean-class> <managed-bean-scope>session</managed-bean-scope> </managed-bean> </faces-config>
<component>中定义Component的类型与实际的类对应,在您于自订Tag中调用
getComponentType()方法所返回的值,就是寻找<component-type>设定的值对应,并由此得知真正对应的
Component类。
我们所撰写的SomeBean测试类如下:
package onlyfun.caterpillar;
public class SomeBean { private String data;
public String getData() { return data; }
public void setData(String data) { this.data = data; } }
这边写一个简单的网页来测试一下我们撰写的自订组件:
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <%@ taglib uri="/WEB-INF/textcmd.tld" prefix="oc" %> <html> <link href="styles.css" rel="stylesheet" type="text/css"/> <head> <title></title> </head> <body> <f:view> <h:form> Input data: <oc:textcmd size="10" value="#{someBean.data}"/> </h:form> <h:outputText value="#{someBean.data}"/> </f:view> </body> </html>
|