gpt4 book ai didi

JSF 1.2 : Can I create reusable component inside JSF view

转载 作者:行者123 更新时间:2023-12-04 15:25:26 25 4
gpt4 key购买 nike

在 jsf 中可以做这样的事情吗?

<ui:composition>
<x:reusableCode id="editScreen">InnerHtml ... </x:reusableCode>
code...
<x:use component="editScreen"/>
</ui:composition

我知道我可以创建自己的组件并在 jsf tagLib 中注册它,但是我只需要在 jsf View 文件中使用可重用的 HTML。

最佳答案

在 Facelets 1.x 中,您可以为此创建一个标记文件。

这是一个基本的启动示例。创建 /WEB-INF/tags/some.xhtml :

<ui:composition 
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
>
<h:outputText value="#{foo}" />
</ui:composition>

/WEB-INF/my.taglib.xml 中定义它:
<?xml version="1.0" encoding="UTF-8"?>
<!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://example.com/jsf/facelets</namespace>
<tag>
<tag-name>some</tag-name>
<source>/WEB-INF/tags/some.xhtml</source>
</tag>
</facelet-taglib>

/WEB-INF/web.xml 注册:
<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>/WEB-INF/my.taglib.xml</param-value>
</context-param>

(注意,当你有多个时,用分号 ; 分隔它们)

最后只需在您的主页模板中声明它。
<ui:composition 
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:my="http://example.com/jsf/facelets"
>
<my:some foo="value1" />
<my:some foo="value2" />
<my:some foo="value3" />
</ui:composition>

可以在此处找到更高级的示例: How to make a grid of JSF composite component?注意:针对 JSF 2.0,但基于上述示例进行了微小更改,它在 Facelets 1.x 上也能正常工作。

关于JSF 1.2 : Can I create reusable component inside JSF view,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10750384/

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