让我们直接跳到很酷的东西上,说在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可以设置为truefalse 。 设置为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

JSF 2.2在30秒内创建一个自定义Hello World组件相关推荐

  1. web.xml.jsf_JSF 2.2在30秒内创建一个自定义Hello World组件

    web.xml.jsf 让我们直接跳到很酷的东西上,说在JSF 2.0中,通过在Facelet标记库( *taglib.xml )中对其进行配置,使页面作者可以使用自定义组件. 此外,当将组件映射到J ...

  2. 如何在 40 秒内创建一个.Net Core Web API?

    为什么我们需要自己写代码?为什么计算机无法自动为我们生成这些代码呢?很显然,我们应该可以利用这些共同点,从一个给定的数据库自动化构建系统--这就是"我"创建Magic的初衷. 作者 ...

  3. DeepMind推出首个商业产品,30秒内准确诊断眼疾!

    来源:Financial Times.智东西编译 摘要:这个设备能像最好的医学专家一样,准确地诊断各种眼部疾病. 4月1日,谷歌母公司Alphabet旗下位于伦敦的AI部门DeepMind已打造出了可 ...

  4. 华为Mate20首支预告片爆出,30秒内包含太多黑科技

    10月16日华为将在伦敦发布华为Mate20系列手机,对于这款手机很多人都充满了期待,因为它将首发搭载麒麟980芯片,这是全球首款商用的7nm芯片,带来的性能和AI方面的提升都是非常大的. 9月25日 ...

  5. 30秒内便能学会的30个超实用Python代码片段

    许多人在数据科学.机器学习.web开发.脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言. Python流行的部分原因在于简单易学. 本文将简要介绍30个简短的.且能在30秒内掌握 ...

  6. 第十一期:30秒内便能学会的30个实用Python代码片段

    许多人在数据科学.机器学习.web开发.脚本编写和自动化等领域中都会使用Python,它是一种十分流行的语言. Python流行的部分原因在于简单易学. 本文将简要介绍30个简短的.且能在30秒内掌握 ...

  7. 【转】十大30秒内即可理解的科学理论

    十大30秒内即可理解的科学理论:量子场论上榜 http://www.sina.com.cn  2010年06月29日 11:30  新浪科技 新浪科技讯 北京时间6月29日消息, 据英国媒体报道,从量 ...

  8. 广东湛江3.6级地震,环境猫30秒内完成速报推送!

    3月5日12时49分,广东湛江市雷州市(北纬20.68°,东经110.03°)发生3.6级地震,震源深度13千米,海口网友反馈震感明显.在广东地震局部署的环境猫(地震版)30秒内推送了速报信息. 环境 ...

  9. AI预测30秒内火灾「轰燃」,准确率92.1%,未来或可帮助拯救消防员生命

    来源:大数据文摘 本文约1800字,建议阅读5分钟本文结合扫了最新研究通过AI预测30S内火灾的轰燃,准确率高达92.1%. 这段时间天气巨热,天干物燥,也是火灾高发的时候. 近期就接连发生了一些火灾 ...

最新文章

  1. 链表问题18——向有序的环形单链表中插入新节点
  2. native字体尺寸自适应 react_ReactNative字体大小不随系统字体大小变化而变化
  3. FD.io/VPP — Overview
  4. Java实现图片去噪和灰度的类
  5. Win32 汇编子过程总结
  6. sas中的sql(2) 行选择 、限制重复、条件运算符、运行前语法检查、feedback、count...
  7. RuoYi-Process多模块activity工作流项目快速搭建
  8. BZOJ2809-左偏树合并
  9. ios企业应用发布流程
  10. roslyn分析字符串代码_.NET 5 源代码生成器——MediatR——CQRS
  11. Revit 2011二次开发“弹出对话框,得到输入的值”
  12. 【Spring】Spring 自定义scope
  13. .NET中的命名规则
  14. Java共享字符串_JAVA-字符串的构建
  15. 你们一直吐槽的12306,你知道他们的的架构有多牛X吗
  16. VREP学习记录(持续更新)
  17. 铀球(235U)的临界半径计算(1d,S8)
  18. 平均增长率不用计算机,官方数据:平均增长率计算公式如何使用excel计算平均增长率...
  19. 拳王虚拟项目公社:建一个虚拟资源流量池,兼职副业卖虚拟资源商品月入5000
  20. c语言局部变量stu,C语言学习笔记

热门文章

  1. java jsp总结
  2. RPC远程过程调用之 RMI实现
  3. JavaWeb前端之AJAX的初步学习
  4. springboot创建项目 编写dao serviece 和controller 持久层用mybatis
  5. 1.0jpa 2.0_Java EE 7之前版本替代JPA 2.1非同步持久性上下文
  6. jdbc时区_什么比日期和时区更难? SQL / JDBC中的日期和时区!
  7. 数据库 ogm_带有Hibernate OGM的NoSQL –第二部分:查询数据
  8. java 性能调优_Java性能调优调查结果(第二部分)
  9. hibernate jpa_JPA /Hibernate刷新策略初学者指南
  10. mule和activemq_Mule ESB,ActiveMQ和DLQ