JSFボディを使用したJSPカスタムタグ
-
26-10-2019 - |
質問
サイト用の独自のテンプレートメカニズムを作成するために結びついています。 「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を視聴するテクノロジーとしてフェイスレットに行くと思います。
所属していません StackOverflow