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>

标签库不包含对组件的属性的任何信息(ID,宽度,高度,标题)和IDE,因此不能检查我的语法也没有,而我打字就可以建议属性。

我无法找到关于此主题的Facelets文档中的任何东西。还以为你能有所帮助。谢谢!

有帮助吗?

解决方案

看来没有一种方式。但是,即使有,我不认为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>

就为了自动完成的缘故。难看,我知道。

其他提示

我期待着能够创建使用JSF 2和小面复合组件;从我读过的东西,它似乎非常快速和容易的,你定义什么属性的复合组件接受。

我不知道之前,但它现在是可能的。只需添加:

<tag>
    <tag-name>mycustomtag</tag-name>
    <source>tags/mycustomtag.xhtml</source>
    <attribute>
        <description>What does this do?!</description>
        <name>attribute</name>
    </attribute>
</tag>
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top