开发者

JSF 2.0 Facelets template inheritance

开发者 https://www.devze.com 2023-02-25 18:22 出处:网络
This is an extended repost of JSF 2.0 Facelets nested templates inheritance, which was loosely asked and formally answered.

This is an extended repost of JSF 2.0 Facelets nested templates inheritance, which was loosely asked and formally answered.

Here is my easy_to_earn question:

template_base.xhm开发者_StackOverflow中文版l

<html xmlns="http://www.w3.org/1999/xhtml"
            xmlns:h="http://java.sun.com/jsf/html"
            xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head><!-- header stuff --></h:head>
<h:body>
    <!-- Lot of html here -->
    <div id="main">
        <ui:insert name="main_content"/>
    </div>
    <!-- Lot of html here -->
</h:body>
</html>

Next, I want another template, form_wrapped.xhtml, which would extend base_template.xhml but with main_content wrapped by <h:form>:

<div id="main">
    <h:form>
        <!-- "main_content" goes here -->
    </h:form>
</div>

And the page itself:

<ui:composition template="/WEB-INF/templates/form_wrapped.xhtml">
    <ui:define name="main_content">
            <!-- this html is wrapped by form -->
    </ui:define>
</ui:composition>

How do I do this?


Make your form_wrapped template like this:

<ui:composition xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    template="/WEB-INF/templates/main_wrapped.xhtml">

    <ui:define name="main_content">
            <div id="main">
                <h:form>
                    <ui:insert name="form_content" />
                </h:form>
            </div>
    </ui:define>

</ui:composition>
0

精彩评论

暂无评论...
验证码 换一张
取 消