在 JSF 2.0 组件中包含子元素 [英] Include sub-element inside JSF 2.0 component

查看:41
本文介绍了在 JSF 2.0 组件中包含子元素的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

这一定很简单.我正在尝试将子元素传递给 JSF 组件.我的组件声明为:

This must be simple. I am trying to pass sub-element into a JSF component. I have my component declared as:

<?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:ui="http://java.sun.com/jsf/facelets"
    xmlns:composite="http://java.sun.com/jsf/composite">

<composite:interface>
</composite:interface>

<composite:implementation>
    <div style="border: 1px solid black;">
        <ui:insert />
    </div>
</composite:implementation>

</html>

然后我通过以下方式在页面中使用它:

Then I use this in a page by:

<box:box>
    <p>Hello world!</p>
</box:box>

不幸的是,该框呈现正常(黑色边框),但Hello world!"文本不包含在其中.我还通过使用 <ui:insert name="content"> 并通过 <ui:define name="content">Hello World!< 调用来尝试更详细的语法./ui:define> 但它不起作用.

Unfortunately, the box renders ok (the black border) but the "Hello world!" text is not included within it. I also tried more verbose syntax by using <ui:insert name="content"> and calling by <ui:define name="content">Hello World!</ui:define> but it didn't work.

我可能会在哪里犯错?

推荐答案

好的,我想通了.您应该使用 改为:

Ok I figured it out. You should use <composite:insertChildren /> instead as in:

<?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:ui="http://java.sun.com/jsf/facelets"
    xmlns:composite="http://java.sun.com/jsf/composite">

<composite:interface>
</composite:interface>

<composite:implementation>
    <div style="border: 1px solid black;">
        <composite:insertChildren />
    </div>
</composite:implementation>

</html>

这行得通.

这篇关于在 JSF 2.0 组件中包含子元素的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆