javascript
JSF 2.2在30秒内创建一个自定义Hello World组件
讓我們直接跳到很酷的東西上,說在JSF 2.0中,通過在Facelet標(biāo)記庫(kù)( *taglib.xml )中對(duì)其進(jìn)行配置,使頁(yè)面作者可以使用自定義組件。 此外,當(dāng)將組件映射到JAR中時(shí),需要在web.xml一個(gè)特殊條目以指向*taglib.xml文件。 從JSF 2.2開始,我們不再需要這些文件。 一個(gè)JSF 2.2簡(jiǎn)單定制組件包含一個(gè)類,它可能類似于以下代碼:
@FacesComponent(value = "components.HelloWorldComponent", createTag = true) public class HelloWorldComponent extends UIComponentBase {@Overridepublic String getFamily() {return "hello.world.component";}@Overridepublic void encodeBegin(FacesContext context) throws IOException {ResponseWriter writer = context.getResponseWriter();writer.write("Hello World!");} }大多數(shù)艱苦的工作都是通過@FacesComponent批注( javax.faces.component.FacesComponent )完成的。 我們需要做的就是將createTag元素設(shè)置為true ,并且JSF應(yīng)該為我們創(chuàng)建標(biāo)簽。 此外,我們可以輕松利用我們的自定義組件,如以下代碼所示:
<?xml version='1.0' encoding='UTF-8' ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://xmlns.jcp.org/jsf/html"xmlns:t="http://xmlns.jcp.org/jsf/component"><h:head><title></title></h:head><h:body><t:helloWorldComponent/></h:body> </html>注意:請(qǐng)注意,該組件的默認(rèn)名稱空間是http://xmlns.jcp.org/jsf/component 。 對(duì)于沒有顯式命名空間的所有組件都是如此。
JSF 2.2 @FacesComponent支持的元素的完整列表如下:
- createTag :可以設(shè)置為true或false 。 設(shè)置為true時(shí),JSF將為我們生成標(biāo)簽(更具體地說,JSF將在運(yùn)行時(shí)創(chuàng)建擴(kuò)展ComponentHandler的Facelet標(biāo)簽處理程序)。 該元素只能在JSF 2.2中使用。
- tagName :這使我們可以指示標(biāo)簽名稱。 當(dāng)createTag設(shè)置為true ,JSF將使用此名稱來(lái)生成標(biāo)記。 該元素只能在JSF 2.2中使用。
- namespace :這使我們可以指示標(biāo)簽的名稱空間。 當(dāng)createTag設(shè)置為true ,JSF將將此名稱空間用于生成的標(biāo)記。 如果未指定名稱空間,則JSF將使用http://xmlns.jcp.org/jsf/組件名稱空間。 該元素只能在JSF 2.2中使用。
- value :此元素來(lái)自JSF 2.0,指示組件類型。 組件類型可以用作Application.createComponent(java.lang.String)方法的參數(shù),以創(chuàng)建Component類的實(shí)例。 從JSF 2.2開始,如果value元素丟失或?yàn)閚ull ,則JSF將通過在附加了@FacesComponent的類上調(diào)用@FacesComponent getSimpleName()方法并小寫第一個(gè)字符來(lái)獲取它。
翻譯自: https://www.javacodegeeks.com/2015/11/jsf-2-2-create-a-custom-hello-world-component-in-30-seconds.html
總結(jié)
以上是生活随笔為你收集整理的JSF 2.2在30秒内创建一个自定义Hello World组件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是退货单号 退货单号是什么意思
- 下一篇: spring 线程池_Spring线程池