【问题标题】:Passing inner markup into Facelet tags将内部标记传递给 Facelet 标签
【发布时间】:2011-04-21 13:44:56
【问题描述】:

我是一个非常初级的 JSP/Facelets 开发人员,需要创建一个新的自定义标签来扩展常见的 ICEFaces 的 commandButton。我希望能够知道如何将自定义标签的开始和结束之间包含的标记传递到命令按钮中。这在需要处理 f:param 时是必要的。

例子:

<myNS:myTag ...>
    <f:param name="name" value="value" />
    <f:param name="name2" value="value2" />
</myNS:myTag>

应该呈现为

<myMarkup>
    <ice:commandButton ...>
        <f:param name="name" value="value" />
        <f:param name="name2" value="value2" />
    </ice:commandButton>
<myMarkup>

个人说明:我对这些技术感到非常困惑。我仍然在 .NET 4 中认为 :(

【问题讨论】:

    标签: jsp jsf facelets icefaces


    【解决方案1】:

    尝试更改要求。您想要做的是复杂的,实际上不是开始使用 JSF(或 JSP)的好方法。 JSP + JSF 不是像 ASP.NET 那样单一的简单技术,而是两种不同的技术以复杂的方式分层(这是不推荐使用组合的原因之一)。即使你设法做你想做的事,你也会被 JSF 对象和 JSP 标签的不同生命周期所困扰,所以它可能无论如何都不会按照你想要的方式工作。

    【讨论】:

    • +1,因为我真的很想念 ASP.NET。我研究了一下,似乎我必须通过渲染器来实现标签。我会再经历一点
    • @djechelon:所以升级到 Facelets 不是一种选择? JSP 作为 JSF 的视图技术很糟糕。
    • 实际上,我刚刚发现,相信我正在创建 JSP 标签,我am 创建了 facelet 标签。你认为我的要求对facelets可行吗?我刚刚看到 taglib 文件以 facelet-taglib 元素开头...我想我应该改写问题
    【解决方案2】:

    根据更新后的问题和 cmets,您似乎真的使用 Facelets(.xhtml 文件)而不是 JSP(.jsp 文件)。在这种情况下,您可以使用&lt;ui:insert /&gt; 来声明自定义标签的子标签的插入位置。

    【讨论】:

      猜你喜欢
      • 2016-07-07
      • 2016-11-26
      • 1970-01-01
      • 1970-01-01
      • 2014-07-23
      • 2012-12-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多