【问题标题】:Custom Facelets components and attributes defined in taglib在 taglib 中定义的自定义 Facelets 组件和属性
【发布时间】:2011-02-05 13:59:51
【问题描述】:

在 Facelets 中定义自定义组件既简单又快捷,但有一件事我想不通。

Facelets 是否可以定义我的自定义组件具有的属性?即:我创建了一个以这种方式使用的组件:

 <blue:modalWindow id="editFeesWizard" width="500" height="440" title="Wizard">

并在taglib.xml中定义如下:

<!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>...</namespace>
    <tag>
        <tag-name>modalWindow</tag-name>
        <source>components/modalWindow.xhtml</source>
    </tag>    
</facelet-taglib>

Taglib 不包含有关组件属性(id、宽度、高度、标题)的任何信息,因此 IDE 无法检查我的语法,也无法在我输入时建议属性。

我在 Facelets 文档中找不到关于此主题的任何内容。以为你能帮上忙。谢谢!

【问题讨论】:

    标签: jsf components facelets taglib


    【解决方案1】:

    我以前不知道,但现在有可能。只需添加:

    <tag>
        <tag-name>mycustomtag</tag-name>
        <source>tags/mycustomtag.xhtml</source>
        <attribute>
            <description>What does this do?!</description>
            <name>attribute</name>
        </attribute>
    </tag>
    

    【讨论】:

      【解决方案2】:

      我期待能够使用 JSF 2 和 facelets 创建复合组件;从我读过的内容来看,这似乎非常快速和简单,您可以定义您的复合组件接受哪些属性。

      【讨论】:

        【解决方案3】:

        似乎没有办法。但即使有,我也不认为 Eclipse(例如)能够处理它并提供自动完成功能。这就是为什么您可以定义一个包含属性的.tld

        <?xml version="1.0" encoding="utf-8"?>
        
        <taglib
            xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-jsptaglibrary_2_1.xsd"
            xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.1">
        ......
        </taglib>
        

        只是为了自动完成。丑,我知道。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2011-03-17
          • 1970-01-01
          • 2011-03-26
          • 2015-03-29
          • 1970-01-01
          • 1970-01-01
          • 2011-01-12
          相关资源
          最近更新 更多