【问题标题】:JSP Custom tag with JSF body带有 JSF 主体的 JSP 自定义标记
【发布时间】:2011-07-16 23:57:58
【问题描述】:

我想为网站创建自己的模板机制。我制作了 2 个名为“TemplateInsert”和“TemplateFor”的自定义标签,一个会像这样使用它们:

<prefix:insert templateFile="someFile>
    <prefix:for name="body">
        some content here
    </prefix:for>

    other prefix:for tags...

</prefix:insert>

除非您的“内容”中有 JSF 标记,否则此方法非常有效。服务器似乎没有解析它们。有谁知道我该如何解决这个问题?

干杯!

【问题讨论】:

    标签: java jsp jsf tomcat custom-tags


    【解决方案1】:

    这就是为什么 JSP 根据 JSF 2.0 / Java EE 6 被 Facelets 成功的众多原因之一。JSP 提供的模板功能非常少。但是,如果您按照他们的docbook 单独安装,您可以在 JSF 1.x 上使用 Facelets 1.x。

    Facelets 开箱即可满足您的功能需求。一个例子:

    template.xhtml

    <!DOCTYPE html>
    <html lang="en"
        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:ui="http://java.sun.com/jsf/facelets"
    >
        <head>
            <title><ui:insert name="title" /></title>
        </head>
        <body>
            <ui:insert name="body" />
        </body>  
    </html>
    

    page.xhtml

    <ui:composition template="template.xhtml"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:ui="http://java.sun.com/jsf/facelets"
    >
        <ui:define name="title">Page title</ui:define>
        <ui:define name="body">
            <h:outputText value="JSF tags just work here." />
        </ui:define>
    </ui:composition>
    

    我会说,将 Facelets 作为 JSF 视图技术,而不是重新发明基于 JSP 的技术。

    【讨论】:

      猜你喜欢
      • 2011-11-11
      • 2012-01-16
      • 1970-01-01
      • 2017-08-21
      • 2011-11-15
      • 1970-01-01
      • 2016-10-22
      • 2015-01-27
      • 1970-01-01
      相关资源
      最近更新 更多