当前位置:
首页 >
前端技术
> javascript
>内容正文
javascript
JSF 2.2在30秒内创建一个自定义Hello World组件
生活随笔
收集整理的这篇文章主要介绍了
JSF 2.2在30秒内创建一个自定义Hello World组件
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
让我们直接跳到很酷的东西上,说在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
总结
以上是生活随笔为你收集整理的JSF 2.2在30秒内创建一个自定义Hello World组件的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 什么是退货单号 退货单号是什么意思
- 下一篇: spring 线程池_Spring线程池