在JSF 2.0中,允许创建自定义标签来呈现预定义的内容。 自定义标签看起来像普通的JSF标签,并使用“ ui:composition ”将内容插入页面。
以下是在JSF 2.0中创建自定义标签的摘要步骤。
- 使用:ui:compisition”标签在XHTML页面中创建预定义的内容。
- 在标签库描述符中声明自定义标签。
- 在web.xml中注册标签库描述符。
自定义标签示例
创建自定义标签的指南,它将在页面中插入两个预定义的提交和重置按钮。
1.自定义标签
创建一个普通的XHTML文件来实现自定义标签,该标签使用“ ui:composition”标签将提交和重置按钮组合在一起。
WEB-INF / tags / com / mkyong / button.xhtml
<?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://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:body>
<ui:composition>
<h:commandButton type="submit" value="#{buttonSubmitLabel}" />
<h:commandButton type="reset" value="#{buttonResetLabel}" />
</ui:composition>
</h:body>
</html>
2.标签库
在标签库描述符文件中定义自定义标签详细信息。
- 名称空间 –此标记库的名称空间,创建一个唯一的名称以避免冲突。
- tag-name –自定义标签名称。
- 源 –自定义标签的实现。
WEB-INF \ mkyong.taglib.xml
<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC
"-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN"
"http://java.sun.com/dtd/facelet-taglib_1_0.dtd">
<facelet-taglib>
<namespace>http://mkyong.com/facelets</namespace>
<tag>
<tag-name>button</tag-name>
<source>tags/com/mkyong/button.xhtml</source>
</tag>
</facelet-taglib>
3.在web.xml中注册
将标签库注册到web.xml文件中。
<!-- Load custom tag into JSF web application -->
<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>/WEB-INF/mkyong.taglib.xml</param-value>
</context-param>
4.使用自定义标签
要使用定制标记,您必须在顶部声明其命名空间,并像普通的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://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:mkyong="http://mkyong.com/facelets"
>
<h:body>
<h1>Custome Tags in JSF 2.0</h1>
<mkyong:button
buttonSubmitLabel="Submit"
buttonResetLabel="Reset" />
</h:body>
</html>
“ mkyong:button”自定义标记将呈现一个提交按钮和一个重置按钮。
下载源代码
下载它– JSF-2-Custom-Tag-Example.zip (11KB)