質問

サイト用の独自のテンプレートメカニズムを作成するために結びついています。 「TemplateInsert」と「テンプレート」という名前の2つのカスタムタグを作成しました。

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

    other prefix:for tags...

</prefix:insert>

「コンテンツ」内にJSFタグがない限り、これは完全に機能します。サーバーはそれらを解析しないようです。誰かが私がこれを修正する方法を知っていますか?

乾杯!

役に立ちましたか?

解決

これは、JSF 2.0 / Java EE 6に従ってJSPがフェイスレットに引き継がれた理由の1つです。JSPは、テンプレート機能をほとんど提供しません。ただし、JSF 1.xでフェイスラット1.xを使用することができます。 ドキュメントブック.

フェイスラットは、すでに箱から出ている機能的要件を正確に提供しています。例:

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>

JSPに基づいて再発明するのではなく、JSFを視聴するテクノロジーとしてフェイスレットに行くと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top