JSF2自定义组件编程系列 第四部分

第四部分 第一个简单的Composite Component

  自己编写html标记的输出是繁琐的,更何况可能还要支持其他的客户端的标记语言。好在我们可以复用JSF2的标准tags.本节实现前一节HtmlInput tag的界面,称之为HtmlInput2 tag。完整的功能将在后面一节中实现。
首先,在src/main/resources/META-INF/下创建目录jsfex,在jsfex目录下创建HtmlInput2.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:inputText/>
      <h:commandButton type="submit" value="Click Me!" />
      <h:outputText value="null"/>
    </ui:composition>
  </h:body>
</html>

  这里分别复用了三个JSF2的标准tag。然后在helloworld.taglib.xml文件中的namespace标记下添加一行:
  <namespace>http://com.freebird/jsfex</namespace>
  <composite-library-name>jsfex</composite-library-name>

  同时添加一个tag元素:
  <tag>
    <tag-name>htmlinput2</tag-name>
    <source>jsfex/HtmlInput2.xhtml</source>
  </tag>

  从界面上,这就是所有要做的,是不是很简单?有了这个,不再需要通过ResponseWriter输出HTML标记了。

未完,待续..

你可能感兴趣的:(jsf2)