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可以设置为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

web.xml.jsf

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/336863.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java左上角图标太小_Eclipse在高分屏下图标过小的解决方法

自己败了一台Surface Pro 4&#xff0c;打算用来看PDF、练代码。安装了Eclipse并且打开之后&#xff0c;发现图标显示极其细小&#xff0c;肉眼几乎无法看清了。这是由于Eclipse对高分屏没有作适配导致的。Windows 10本身对于高分屏的支持已是相当不错&#xff0c;苏菲4的屏幕分…

java胜任理由_Java在几乎所有方面均能胜任本机响应

java胜任理由我与一位同事讨论了Java与JavaScript的话题&#xff0c;这是一个有问题的话题。 然后他提到React Native多么出色&#xff0c;我决定我必须研究一下&#xff0c;也许要为Codename One掌握一些想法…… 那里有一些不错的主意&#xff0c;但是它们都不是革命性的或例…

java发送文件_java 模拟http发送文件和参数

一、maven&#xff1a;org.apache.httpcomponentshttpmime4.5.3二、工具类&#xff1a;import java.io.File;import java.util.Map;import java.util.Map.Entry;import org.apache.http.*;import org.apache.http.client.HttpClient;import org.apache.http.client.config.Requ…

设置Elasticsearch N-Gram字分析器的过程

说n-gram是一个大话题&#xff0c;这是轻描淡写的。 进行快速搜索&#xff0c;您会发现自己盯着语言学和语言模型&#xff0c;数据挖掘或特定蛋白质的分解对首次亮相文化的衰落所隐含的信息量。 好吧&#xff0c;我在跟那最后一个开玩笑。 但是&#xff0c;如果您是开发人员&a…

java字节码反编译_javap 反编译 java 字节码文件

概述&#xff1a;javap是 Java class文件分解器&#xff0c;可以反编译&#xff0c;也可以查看java编译器生成的字节码&#xff0c;从而对代码内部的执行逻辑进行分析。语法&#xff1a;把java文件编译为class文件&#xff1a;javac Test.java (Test.java为java文件名) 生成对…

javaone_JavaOne演讲者选择了您不容错过的10个会话

javaone确保会议安排中包含这些JavaOne会话 JavaOne 2015从这个星期日开始&#xff0c;数百个会话同时进行&#xff0c;因此很难筛选所有会话并选择要参加的会话。 这就是为什么我们邀请5位最喜欢的JavaOne发言人让我们了解他们的会议&#xff0c;并选择他们最期待的会议。 好…

java servlet文件下载_Java之Servlet文件下载20190228

jsp页面:pageEncoding"utf-8"%>Insert title here下载index.jsp下载1.jpg下载test.jspServlet:packageorg.jimmy.testwebproject2019012602.servlet.download;importjava.io.FileInputStream;importjava.io.IOException;importjava.io.InputStream;importjavax.se…

activiti 多租户_Activiti中具有独立数据库架构的多租户

activiti 多租户我们过去听到的一项功能请求是以多租户方式运行Activiti引擎&#xff0c;使租户的数据与其他数据隔离。 当然&#xff0c;在某些云/ SaaS环境中&#xff0c;这是必须的。 几个月前&#xff0c;波恩大学的学生拉斐尔吉伦&#xff08;Raphael Gielen&#xff09;…

jigsaw kaggle_使用Project Jigsaw的JDK 9 Early Access上的Eclipse IDE

jigsaw kaggle几周前&#xff0c;我写了关于在Java 9上运行Eclipse Neon的文章 &#xff08;尽管&#xff0c;我在帖子标题中错误地且令人尴尬地留下了“火星”&#xff09;。 值得注意的是&#xff0c;我列出的步骤也适用于带有Project Jigsaw &#xff08;Java模块化&#xf…

win7 activemq_带有骆驼,ActiveMQ,Elasticsearch的关键HL7用例

win7 activemqML7上的HL7是可以说HL7协议格式的系统的一种非常常见的传输机制。 JBoss Fuse是一个非常强大的微服务样式集成平台&#xff0c;在为关键医疗保健提供者构建灵活&#xff0c;有弹性&#xff0c;高可用性的集成方案方面拥有良好的经验。 此外&#xff0c;在JCAPS上替…

jboss4 迁移_应用程序服务器迁移:从JBoss EE5到Wildfly EE7

jboss4 迁移几周前&#xff0c;我发布了一个有关从Java EE 5迁移到7的博客 。这主要是关于如何使用新的Java EE 7改进Java EE 5代码。 现在&#xff0c;在这篇文章中&#xff0c;我将对应用程序服务器端的迁移路径进行一些研究。 如果您使用的是Java EE 5&#xff0c;则很有可…

java xmlrpc2.0 实现_简单的java xmlrpc

&#xfeff;&#xfeff;简单的 XMLRPCjava---XmlRpcClientpackage com.company;import org.apache.xmlrpc.XmlRpcClient;import org.apache.xmlrpc.XmlRpcException;import java.net.MalformedURLException;import java.util.Hashtable;import java.util.Vector;public class…

操作方法:带有Thymeleaf和Spring Boot的Java 8日期和时间

如果您碰巧使用Spring Boot和Thymeleaf&#xff0c;并且需要在视图中格式化Java 8 Date&#xff06;Time对象&#xff0c;则可以使用thymeleaf-extras-java8time –用于Java 8 Date&#xff06;Time API的Thymeleaf模块。 向现有的基于Maven或Gradle的Spring Boot项目中添加th…

java boundary_上传文件multipart form-data boundary 说明

含义 ENCTYPE"multipart/form-data" 说明&#xff1a;通过 http 协议上传文件 rfc1867协议概述&#xff0c;客户端发送内容构造。概述在最初的 http 协议中&#xff0c;没有上传文件方面的功能。 rfc1867为 http 协议添加了这个功能。客户端的浏览器&#xff0c;如 M…

java 预处理语句_预处理语句PreparedStatement到底咋用啊

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼我自己试了一下直接查询id为1的语句&#xff0c;有一条结果出来&#xff0c;但是用了PreparedStatement后就没有结果了&#xff0c;有大佬知道为什么吗orzpackage test;import java.io.IOException;import java.io.PrintWriter;imp…

crud-table_我个人的CRUD故事-或我如何来到CUBA平台

crud-table在此博客文章中&#xff0c;我想介绍一下我如何使用CUBA平台以及该工具的好处。 在我年轻的“业务应用程序开发”历史上&#xff0c;我将深入探讨各个阶段&#xff0c;只是给您一些背景知识。 因此&#xff0c;让我们从如何进入典型的CRUD应用程序开始&#xff0c;以…

python api接口生成_Django 自动生成api接口文档教程

最近在写测试平台&#xff0c;需要实现一个节点服务器的api,正好在用django&#xff0c;准备使用djangorestframework插件实现。需求实现一个接口&#xff0c;在调用时&#xff0c;通过传递的参数&#xff0c;直接运行对应项目的自动化测试环境Python3.6 ,PyCharm,W7项目结构功…

eclipse clean_Clean Sheet – Windows 10的人体工程学Eclipse主题

eclipse cleanClean Sheet是适用于Windows 10的符合人体工程学的Eclipse主题。它基于干净&#xff0c;低眩光的外观和感觉&#xff0c;旨在减轻视觉疲劳和眼睛疲劳。 它融合了均衡的颜色选择&#xff0c;可以突出谐波语法并注重可读性。 除自定义滚动条外&#xff0c;它还努力满…

什么时候需要使用cqrs_在CQRS读取模型中使用Hibernate进行快速开发

什么时候需要使用cqrs在本文中&#xff0c;我将分享一些在CQRS读取模型中使用Hibernate工具进行快速开发的技巧。 为什么要Hibernate&#xff1f; Hibernate非常流行。 从外观上看&#xff0c;它也很容易&#xff0c;而从内部看&#xff0c;它却相当复杂。 它可以很容易地上手…

java面试题三_最全的java面试题目三

78、什么情况下调用doGet()和doPost()&#xff1f;答&#xff1a;Jsp页面中的form标签里的method属性为get时调用doGet()&#xff0c;为post时调用doPost()。79、servlet的生命周期答&#xff1a;web容器加载servlet&#xff0c;生命周期开始。通过调用servlet的init()方法进行…