gpt4 book ai didi

jsf - 如何在 JSF 中创建现有组件的组合?

转载 作者:行者123 更新时间:2023-12-02 06:01:28 24 4
gpt4 key购买 nike

我想知道是否可以编写我自己的组件(或称其为 Widget、Object)。

我的意思是,不要(例如)使用 h:panelGroup 和其中的 h:outputLabel,而是制作我自己的 h:panelMarkzzz >,作为 panelGroup 和 outputLabel 的组合。

在 JSF 上可以吗?

最佳答案

是的,可以创建这样的现有组件的组合。

启动示例:

/resources/foo/group.xhtml

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:cc="http://xmlns.jcp.org/jsf/composite">
<cc:interface>
<cc:attribute name="label" type="java.lang.String" required="true" />
</cc:interface>
<cc:implementation>
<h:panelGroup>
<h:outputLabel value="#{cc.attrs.label}" />
<cc:insertChildren />
</h:panelGroup>
</cc:implementation>
</html>

/test.xhtml

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:foo="http://xmlns.jcp.org/jsf/composite/foo">
<h:head>
<title>Test</title>
</h:head>
<h:body>
<foo:group label="Label value">
<h:outputText value="This will appear after label inside the panelgroup" />
</foo:group>
</h:body>
</html>

/foo文件夹名称可以根据您的喜好随意命名,您可以在 XML 命名空间中将其引用为 http://xmlns.jcp.org/jsf/composite/XXX 。 XHTML 文件名是标签名称。

也就是说,复合组件会对性能产生影响,并且仅当使用简单的包含或标记文件无法实现功能要求时才应使用它们。在您的具体情况下,您最好改用标记文件。仅当您确实需要复合组件 <cc:interface componentType="..."> 时,它才有值(value)。 .

另请参阅:

关于jsf - 如何在 JSF 中创建现有组件的组合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5219466/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com