javascript
web.xml.jsf_JSF 2.2在30秒内创建一个自定义Hello World组件
web.xml.jsf
讓我們直接跳到很酷的東西上,說在JSF 2.0中,通過在Facelet標記庫( *taglib.xml )中對其進行配置,使頁面作者可以使用自定義組件。 此外,當將組件映射到JAR中時,需要在web.xml一個特殊條目以指向*taglib.xml文件。 從JSF 2.2開始,我們不再需要這些文件。 一個JSF 2.2簡單定制組件包含一個類,它可能類似于以下代碼:
@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!");} }大多數艱苦的工作都是通過@FacesComponent批注( javax.faces.component.FacesComponent )完成的。 我們需要做的就是將createTag元素設置為true ,而JSF應該為我們創建標簽。 此外,我們可以輕松利用我們的自定義組件,如以下代碼所示:
<?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>注意:請注意,組件的默認名稱空間是http://xmlns.jcp.org/jsf/component 。 對于沒有顯式命名空間的所有組件都是如此。
JSF 2.2 @FacesComponent支持的元素的完整列表如下:
- createTag :可以設置為true或false 。 設置為true時,JSF將為我們生成標簽(更具體地說,JSF將在運行時創建擴展ComponentHandler的Facelet標簽處理程序)。 該元素只能在JSF 2.2中使用。
- tagName :這使我們可以指示標簽名稱。 當createTag設置為true ,JSF將使用此名稱來生成標記。 該元素只能在JSF 2.2中使用。
- namespace :這使我們可以指示標簽的名稱空間。 當createTag設置為true ,JSF將使用此命名空間來生成標簽。 如果未指定名稱空間,則JSF將使用http://xmlns.jcp.org/jsf/組件名稱空間。 該元素只能在JSF 2.2中使用。
- value :此元素來自JSF 2.0,指示組件類型。 組件類型可以用作Application.createComponent(java.lang.String)方法的參數,以創建Component類的實例。 從JSF 2.2開始,如果value元素缺失或為null ,則JSF將通過在附加了@FacesComponent的類上調用@FacesComponent getSimpleName()方法并小寫第一個字符來獲取它。
翻譯自: https://www.javacodegeeks.com/2015/11/jsf-2-2-create-a-custom-hello-world-component-in-30-seconds.html
web.xml.jsf
總結
以上是生活随笔為你收集整理的web.xml.jsf_JSF 2.2在30秒内创建一个自定义Hello World组件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 启动盘linux(启动盘 linux)
- 下一篇: 三国志英杰传安卓版(英杰传安卓版)