FAQ
I just started using JSF, trying to get MyFaces' Tiles integration to work.
So I created a layout page which uses tiles:insert to include the mainbar,
the sidebar and the content pane. In my tiles definition file I have a base
definition which all other definitions - two so far - extend.

Here's my tiles definition file:

<tiles-definitions>
<definition name="/ews.base" path="/template/layout.jsp" id="basePage">
<put name="mainNavigation" value="/common/mainNavigation.jsp"
type="page"/>
<put name="sideActions" value="/common/sideActions.jsp" type="page"/>
<put name="content" value="/common/empty.jsp" type="page"/>
</definition>
<definition name="/common/startPage.tiles" extends="/ews.base"
id="startPage">
<put name="content" value="/startPage.jsp" type="page"/>
</definition>
<definition name="/organization/searchForm.tiles" extends="/ews.base"
id="organizationSearchForm">
<put name="content" value="/organization/searchForm.jsp" type="page"/>
</definition>
</tiles-definitions>

A <c:redirect url="common/startPage.jsf"/> will produce the desired effect,
i.e. the start page is composed correctly and I can see the message
startPage.jsp produces via <h:outputText/>.

And here's the catch: if I do a <c:redirect
url="organization/searchForm.jsf"/> I get a page with mainNavigation.jsp and
sideActions.jsp correctly included and translated into HTML, yet the content
of organization/searchForm.jsp is copied _verbatim_ into the HTML page. This
means that I can see the JSP code from organization/searchForm.jsp in the
generated page's source code.

I started playing around with the contents of startPage.jsp and
organization/searchForm.jsp and ended up swapping it, i.e I copied
startPage.jsp's JSP code into organization/searchForm.jsp and vice versa. Lo
and behold: I can see my organizationSearchForm on the start page, and
organization/searchForm.jsp is still copied verbatim into the generated HTML
output. So the problem _seems_ to be the tiles definition
/organization/searchForm.tiles itself and _not_ the JSP content in
organization/searchForm.jsp.

So could anyone give me a clue what is going on here since I am on the verge
of throwing up after staring at this phenomenon for the last four days? I am
using myfaces-1.0.9 in JBoss 4.0.2 under JDK 1.4.2_08 and any help would be
_greatly_ appreciated.

Cheers,

Olaf
--------------------------------------------
Easynet GmbH (http://www.de.easynet.net)
Olaf Bergner, System Integrations
Harburger Schlossstrasse 1, D-21079 Hamburg
fon: +49-40-77175-434, fax: +49-40-77175-519
# Easynet is part of the easynet group plc (www.Easynetgroup.net)

Search Discussions

  • Olaf Bergner at Jun 22, 2005 at 1:06 pm
    Since nobody responded to my first post and sine further this problem is
    starting to become a real showstopper potentially blocking our adoption of
    JSF I try to give some further info, little as it may be.

    I have a main navigation bar for switching between modules, registered as
    global navigation rules. If I switch from /common/startPage.jsf[=tiles] to
    /organization/searchForm.jsf by clicking on the navigation link
    (h:commandLink) the URL in my browser remains unchanged, yet the
    "sideActions" tile will be correctly inserted and transformed into HTML. The
    "content" tile, though, will be inserted verbatim, i.e. I can see the JSP
    source in the generated HTML. Only after a second click on the same link
    does the URL change.

    If I change back to /common/startPage.jsf I need two clicks to change the
    browser URL, yet the "sideActions" as well as the "content" tile both will
    be inserted and transformed correctly.

    Since even after staring at the tiles-defs.xml for nearly a week without
    noticing any structural differences between /common/startPage.tiles and
    /organization/searchForm.tiles I strongly suspect that this is a bug in
    MyFaces' tiles integration. Did anyone encounter a similar phenomenon and
    maybe found a workaround for it?

    Thx,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Olaf Bergner
    Gesendet: Dienstag, 21. Juni 2005 13:35
    An: users@myfaces.apache.org
    Betreff: [Tiles] Included not compiled


    I just started using JSF, trying to get MyFaces' Tiles
    integration to work.
    So I created a layout page which uses tiles:insert to include the mainbar,
    the sidebar and the content pane. In my tiles definition file I
    have a base
    definition which all other definitions - two so far - extend.

    Here's my tiles definition file:

    <tiles-definitions>
    <definition name="/ews.base" path="/template/layout.jsp" id="basePage">
    <put name="mainNavigation" value="/common/mainNavigation.jsp"
    type="page"/>
    <put name="sideActions" value="/common/sideActions.jsp" type="page"/>
    <put name="content" value="/common/empty.jsp" type="page"/>
    </definition>
    <definition name="/common/startPage.tiles" extends="/ews.base"
    id="startPage">
    <put name="content" value="/startPage.jsp" type="page"/>
    </definition>
    <definition name="/organization/searchForm.tiles" extends="/ews.base"
    id="organizationSearchForm">
    <put name="content" value="/organization/searchForm.jsp" type="page"/>
    </definition>
    </tiles-definitions>

    A <c:redirect url="common/startPage.jsf"/> will produce the
    desired effect,
    i.e. the start page is composed correctly and I can see the message
    startPage.jsp produces via <h:outputText/>.

    And here's the catch: if I do a <c:redirect
    url="organization/searchForm.jsf"/> I get a page with
    mainNavigation.jsp and
    sideActions.jsp correctly included and translated into HTML, yet
    the content
    of organization/searchForm.jsp is copied _verbatim_ into the HTML
    page. This
    means that I can see the JSP code from organization/searchForm.jsp in the
    generated page's source code.

    I started playing around with the contents of startPage.jsp and
    organization/searchForm.jsp and ended up swapping it, i.e I copied
    startPage.jsp's JSP code into organization/searchForm.jsp and
    vice versa. Lo
    and behold: I can see my organizationSearchForm on the start page, and
    organization/searchForm.jsp is still copied verbatim into the
    generated HTML
    output. So the problem _seems_ to be the tiles definition
    /organization/searchForm.tiles itself and _not_ the JSP content in
    organization/searchForm.jsp.

    So could anyone give me a clue what is going on here since I am
    on the verge
    of throwing up after staring at this phenomenon for the last four
    days? I am
    using myfaces-1.0.9 in JBoss 4.0.2 under JDK 1.4.2_08 and any
    help would be
    _greatly_ appreciated.

    Cheers,

    Olaf
    --------------------------------------------
    Easynet GmbH (http://www.de.easynet.net)
    Olaf Bergner, System Integrations
    Harburger Schlossstrasse 1, D-21079 Hamburg
    fon: +49-40-77175-434, fax: +49-40-77175-519
    # Easynet is part of the easynet group plc (www.Easynetgroup.net)

  • Neal Haggard at Jun 22, 2005 at 1:26 pm
    Olaf,

    The reason the URL is not changing is you need to specify in your navigation rules that the case is a redirect by adding the <redirect /> tag to the rule. Something along the lines of:

    <navigation-rule>
    <from-view-id>*</from-view-id>

    <navigation-case>
    <from-outcome>organization-search</from-outcome>
    <to-view-id>/organization/searchForm.jsp</to-view-id>
    <redirect />
    </navigation-case>
    </navigation-rule>

    As for your other issue (seeing the JSP source in the generated HTML) we have not had that issue, and we are using tiles to pull together the multiple layouts for our site. Perhaps could you give us a code snippet that shows where your 'content' tile is inserted in your layout tile definition and then some of your searchForm.jsf or something?

    Sorry you're having such problems and hope they clear up,

    Neal Haggard
    Senior Developer
    SAS Institute

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 9:06 AM
    To: MyFaces Discussion
    Subject: [Tiles] Included tile not compiled (additional info)

    Since nobody responded to my first post and sine further this problem is starting to become a real showstopper potentially blocking our adoption of JSF I try to give some further info, little as it may be.

    I have a main navigation bar for switching between modules, registered as global navigation rules. If I switch from /common/startPage.jsf[=tiles] to /organization/searchForm.jsf by clicking on the navigation link
    (h:commandLink) the URL in my browser remains unchanged, yet the "sideActions" tile will be correctly inserted and transformed into HTML. The "content" tile, though, will be inserted verbatim, i.e. I can see the JSP source in the generated HTML. Only after a second click on the same link does the URL change.

    If I change back to /common/startPage.jsf I need two clicks to change the browser URL, yet the "sideActions" as well as the "content" tile both will be inserted and transformed correctly.

    Since even after staring at the tiles-defs.xml for nearly a week without noticing any structural differences between /common/startPage.tiles and /organization/searchForm.tiles I strongly suspect that this is a bug in MyFaces' tiles integration. Did anyone encounter a similar phenomenon and maybe found a workaround for it?

    Thx,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Olaf Bergner
    Gesendet: Dienstag, 21. Juni 2005 13:35
    An: users@myfaces.apache.org
    Betreff: [Tiles] Included not compiled


    I just started using JSF, trying to get MyFaces' Tiles integration to
    work.
    So I created a layout page which uses tiles:insert to include the
    mainbar, the sidebar and the content pane. In my tiles definition file
    I have a base definition which all other definitions - two so far -
    extend.

    Here's my tiles definition file:

    <tiles-definitions>
    <definition name="/ews.base" path="/template/layout.jsp" id="basePage">
    <put name="mainNavigation" value="/common/mainNavigation.jsp"
    type="page"/>
    <put name="sideActions" value="/common/sideActions.jsp" type="page"/>
    <put name="content" value="/common/empty.jsp" type="page"/>
    </definition> <definition name="/common/startPage.tiles"
    extends="/ews.base"
    id="startPage">
    <put name="content" value="/startPage.jsp" type="page"/>
    </definition> <definition name="/organization/searchForm.tiles"
    extends="/ews.base"
    id="organizationSearchForm">
    <put name="content" value="/organization/searchForm.jsp"
    type="page"/> </definition> </tiles-definitions>

    A <c:redirect url="common/startPage.jsf"/> will produce the desired
    effect, i.e. the start page is composed correctly and I can see the
    message startPage.jsp produces via <h:outputText/>.

    And here's the catch: if I do a <c:redirect
    url="organization/searchForm.jsf"/> I get a page with
    mainNavigation.jsp and sideActions.jsp correctly included and
    translated into HTML, yet the content of organization/searchForm.jsp
    is copied _verbatim_ into the HTML page. This means that I can see the
    JSP code from organization/searchForm.jsp in the generated page's
    source code.

    I started playing around with the contents of startPage.jsp and
    organization/searchForm.jsp and ended up swapping it, i.e I copied
    startPage.jsp's JSP code into organization/searchForm.jsp and vice
    versa. Lo and behold: I can see my organizationSearchForm on the start
    page, and organization/searchForm.jsp is still copied verbatim into
    the generated HTML output. So the problem _seems_ to be the tiles
    definition /organization/searchForm.tiles itself and _not_ the JSP
    content in organization/searchForm.jsp.

    So could anyone give me a clue what is going on here since I am on the
    verge of throwing up after staring at this phenomenon for the last
    four days? I am using myfaces-1.0.9 in JBoss 4.0.2 under JDK 1.4.2_08
    and any help would be _greatly_ appreciated.

    Cheers,

    Olaf
    --------------------------------------------
    Easynet GmbH (http://www.de.easynet.net) Olaf Bergner, System
    Integrations Harburger Schlossstrasse 1, D-21079 Hamburg
    fon: +49-40-77175-434, fax: +49-40-77175-519 # Easynet is part of the
    easynet group plc (www.Easynetgroup.net)

  • Olaf Bergner at Jun 22, 2005 at 2:06 pm
    Neal,

    thx for your prompt reply. Here's the - in my view - relevant snippet from
    my topmost layout JSP:

    <%-- BEGIN MAIN CONTENT AREA --%>
    <f:verbatim>
    <div id="content">
    </f:verbatim>
    <f:subview id="contentView">
    <tiles:insert attribute="content" flush="false" />
    </f:subview>
    <f:verbatim>
    </div>
    </f:verbatim>
    <%-- END MAIN CONTENT --%>

    Here's the tile /organization/searchForm.jsp which won't get compiled:

    <h:form id="organizationSearchForm">
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['organization.headline.search']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>
    <h:panelGrid columns="3">
    <h:outputText
    value="#{msg['organization.label.searchform.byCommonFields']}" />
    <h:inputText id="byCommonFieldsSearchString" styleClass="ewsgrey"
    value="#{organizationSearch.searchString}" />
    <x:commandButton id="byCommonFieldsBtn" styleClass="ewsgrey"
    action="#{organizationSearch.searchByCommonFields}"
    image="#{msg['common.image.searchBtn']}" />
    [more rows]
    </h:panelGrid>
    </h:form>

    but this - /common/startPage.jsp will:

    <%@ include file="./inc/taglibs.inc" %>
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['common.headline.home']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>

    As I said in my original post: If I swap the contents of searchForm.jsp and
    startPage.jsp I can see the correct output for searchForm.jsp, but now
    startPage.jsp will be copied verbatim into the final HTML page. I think it
    was Arthur C. Clarke who said: "Any sufficiently advanced technology will be
    indistinguishable from magic." Glad that I happen to see this in my days ;-)

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Neal Haggard
    Gesendet: Mittwoch, 22. Juni 2005 15:27
    An: MyFaces Discussion
    Betreff: RE: [Tiles] Included tile not compiled (additional info)


    Olaf,

    The reason the URL is not changing is you need to specify in
    your navigation rules that the case is a redirect by adding the
    <redirect /> tag to the rule. Something along the lines of:

    <navigation-rule>
    <from-view-id>*</from-view-id>

    <navigation-case>
    <from-outcome>organization-search</from-outcome>
    <to-view-id>/organization/searchForm.jsp</to-view-id>
    <redirect />
    </navigation-case>
    </navigation-rule>

    As for your other issue (seeing the JSP source in the
    generated HTML) we have not had that issue, and we are using
    tiles to pull together the multiple layouts for our site.
    Perhaps could you give us a code snippet that shows where your
    'content' tile is inserted in your layout tile definition and
    then some of your searchForm.jsf or something?

    Sorry you're having such problems and hope they clear up,

    Neal Haggard
    Senior Developer
    SAS Institute

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 9:06 AM
    To: MyFaces Discussion
    Subject: [Tiles] Included tile not compiled (additional info)

    Since nobody responded to my first post and sine further this
    problem is starting to become a real showstopper potentially
    blocking our adoption of JSF I try to give some further info,
    little as it may be.

    I have a main navigation bar for switching between modules,
    registered as global navigation rules. If I switch from
    /common/startPage.jsf[=tiles] to /organization/searchForm.jsf by
    clicking on the navigation link
    (h:commandLink) the URL in my browser remains unchanged, yet the
    "sideActions" tile will be correctly inserted and transformed
    into HTML. The "content" tile, though, will be inserted verbatim,
    i.e. I can see the JSP source in the generated HTML. Only after a
    second click on the same link does the URL change.

    If I change back to /common/startPage.jsf I need two clicks to
    change the browser URL, yet the "sideActions" as well as the
    "content" tile both will be inserted and transformed correctly.

    Since even after staring at the tiles-defs.xml for nearly a week
    without noticing any structural differences between
    /common/startPage.tiles and /organization/searchForm.tiles I
    strongly suspect that this is a bug in MyFaces' tiles
    integration. Did anyone encounter a similar phenomenon and maybe
    found a workaround for it?

    Thx,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Olaf Bergner
    Gesendet: Dienstag, 21. Juni 2005 13:35
    An: users@myfaces.apache.org
    Betreff: [Tiles] Included not compiled


    I just started using JSF, trying to get MyFaces' Tiles integration to
    work.
    So I created a layout page which uses tiles:insert to include the
    mainbar, the sidebar and the content pane. In my tiles definition file
    I have a base definition which all other definitions - two so far -
    extend.

    Here's my tiles definition file:

    <tiles-definitions>
    <definition name="/ews.base" path="/template/layout.jsp" id="basePage">
    <put name="mainNavigation" value="/common/mainNavigation.jsp"
    type="page"/>
    <put name="sideActions" value="/common/sideActions.jsp" type="page"/>
    <put name="content" value="/common/empty.jsp" type="page"/>
    </definition> <definition name="/common/startPage.tiles"
    extends="/ews.base"
    id="startPage">
    <put name="content" value="/startPage.jsp" type="page"/>
    </definition> <definition name="/organization/searchForm.tiles"
    extends="/ews.base"
    id="organizationSearchForm">
    <put name="content" value="/organization/searchForm.jsp"
    type="page"/> </definition> </tiles-definitions>

    A <c:redirect url="common/startPage.jsf"/> will produce the desired
    effect, i.e. the start page is composed correctly and I can see the
    message startPage.jsp produces via <h:outputText/>.

    And here's the catch: if I do a <c:redirect
    url="organization/searchForm.jsf"/> I get a page with
    mainNavigation.jsp and sideActions.jsp correctly included and
    translated into HTML, yet the content of organization/searchForm.jsp
    is copied _verbatim_ into the HTML page. This means that I can see the
    JSP code from organization/searchForm.jsp in the generated page's
    source code.

    I started playing around with the contents of startPage.jsp and
    organization/searchForm.jsp and ended up swapping it, i.e I copied
    startPage.jsp's JSP code into organization/searchForm.jsp and vice
    versa. Lo and behold: I can see my organizationSearchForm on the start
    page, and organization/searchForm.jsp is still copied verbatim into
    the generated HTML output. So the problem _seems_ to be the tiles
    definition /organization/searchForm.tiles itself and _not_ the JSP
    content in organization/searchForm.jsp.

    So could anyone give me a clue what is going on here since I am on the
    verge of throwing up after staring at this phenomenon for the last
    four days? I am using myfaces-1.0.9 in JBoss 4.0.2 under JDK 1.4.2_08
    and any help would be _greatly_ appreciated.

    Cheers,

    Olaf
    --------------------------------------------
    Easynet GmbH (http://www.de.easynet.net) Olaf Bergner, System
    Integrations Harburger Schlossstrasse 1, D-21079 Hamburg
    fon: +49-40-77175-434, fax: +49-40-77175-519 # Easynet is part of the
    easynet group plc (www.Easynetgroup.net)

  • Olaf Bergner at Jun 22, 2005 at 2:21 pm
    I forgot: /organization/searchForm.jsp _does_ have a <%@ include
    file="../inc/taglibs.inc" %> at its top.
    -----Ursprüngliche Nachricht-----
    Von: Olaf Bergner
    Gesendet: Mittwoch, 22. Juni 2005 16:07
    An: MyFaces Discussion
    Betreff: AW: [Tiles] Included tile not compiled (additional info)


    Neal,

    thx for your prompt reply. Here's the - in my view - relevant snippet from
    my topmost layout JSP:

    <%-- BEGIN MAIN CONTENT AREA --%>
    <f:verbatim>
    <div id="content">
    </f:verbatim>
    <f:subview id="contentView">
    <tiles:insert attribute="content" flush="false" />
    </f:subview>
    <f:verbatim>
    </div>
    </f:verbatim>
    <%-- END MAIN CONTENT --%>

    Here's the tile /organization/searchForm.jsp which won't get compiled:

    <h:form id="organizationSearchForm">
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['organization.headline.search']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>
    <h:panelGrid columns="3">
    <h:outputText
    value="#{msg['organization.label.searchform.byCommonFields']}" />
    <h:inputText id="byCommonFieldsSearchString" styleClass="ewsgrey"
    value="#{organizationSearch.searchString}" />
    <x:commandButton id="byCommonFieldsBtn" styleClass="ewsgrey"
    action="#{organizationSearch.searchByCommonFields}"
    image="#{msg['common.image.searchBtn']}" />
    [more rows]
    </h:panelGrid>
    </h:form>

    but this - /common/startPage.jsp will:

    <%@ include file="./inc/taglibs.inc" %>
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['common.headline.home']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>

    As I said in my original post: If I swap the contents of
    searchForm.jsp and
    startPage.jsp I can see the correct output for searchForm.jsp, but now
    startPage.jsp will be copied verbatim into the final HTML page. I think it
    was Arthur C. Clarke who said: "Any sufficiently advanced
    technology will be
    indistinguishable from magic." Glad that I happen to see this in
    my days ;-)

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Neal Haggard
    Gesendet: Mittwoch, 22. Juni 2005 15:27
    An: MyFaces Discussion
    Betreff: RE: [Tiles] Included tile not compiled (additional info)


    Olaf,

    The reason the URL is not changing is you need to specify in
    your navigation rules that the case is a redirect by adding the
    <redirect /> tag to the rule. Something along the lines of:

    <navigation-rule>
    <from-view-id>*</from-view-id>

    <navigation-case>
    <from-outcome>organization-search</from-outcome>
    <to-view-id>/organization/searchForm.jsp</to-view-id>
    <redirect />
    </navigation-case>
    </navigation-rule>

    As for your other issue (seeing the JSP source in the
    generated HTML) we have not had that issue, and we are using
    tiles to pull together the multiple layouts for our site.
    Perhaps could you give us a code snippet that shows where your
    'content' tile is inserted in your layout tile definition and
    then some of your searchForm.jsf or something?

    Sorry you're having such problems and hope they clear up,

    Neal Haggard
    Senior Developer
    SAS Institute

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 9:06 AM
    To: MyFaces Discussion
    Subject: [Tiles] Included tile not compiled (additional info)

    Since nobody responded to my first post and sine further this
    problem is starting to become a real showstopper potentially
    blocking our adoption of JSF I try to give some further info,
    little as it may be.

    I have a main navigation bar for switching between modules,
    registered as global navigation rules. If I switch from
    /common/startPage.jsf[=tiles] to /organization/searchForm.jsf by
    clicking on the navigation link
    (h:commandLink) the URL in my browser remains unchanged, yet the
    "sideActions" tile will be correctly inserted and transformed
    into HTML. The "content" tile, though, will be inserted verbatim,
    i.e. I can see the JSP source in the generated HTML. Only after a
    second click on the same link does the URL change.

    If I change back to /common/startPage.jsf I need two clicks to
    change the browser URL, yet the "sideActions" as well as the
    "content" tile both will be inserted and transformed correctly.

    Since even after staring at the tiles-defs.xml for nearly a week
    without noticing any structural differences between
    /common/startPage.tiles and /organization/searchForm.tiles I
    strongly suspect that this is a bug in MyFaces' tiles
    integration. Did anyone encounter a similar phenomenon and maybe
    found a workaround for it?

    Thx,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Olaf Bergner
    Gesendet: Dienstag, 21. Juni 2005 13:35
    An: users@myfaces.apache.org
    Betreff: [Tiles] Included not compiled


    I just started using JSF, trying to get MyFaces' Tiles integration to
    work.
    So I created a layout page which uses tiles:insert to include the
    mainbar, the sidebar and the content pane. In my tiles definition file
    I have a base definition which all other definitions - two so far -
    extend.

    Here's my tiles definition file:

    <tiles-definitions>
    <definition name="/ews.base" path="/template/layout.jsp"
    id="basePage">
    <put name="mainNavigation" value="/common/mainNavigation.jsp"
    type="page"/>
    <put name="sideActions" value="/common/sideActions.jsp"
    type="page"/>
    <put name="content" value="/common/empty.jsp" type="page"/>
    </definition> <definition name="/common/startPage.tiles"
    extends="/ews.base"
    id="startPage">
    <put name="content" value="/startPage.jsp" type="page"/>
    </definition> <definition name="/organization/searchForm.tiles"
    extends="/ews.base"
    id="organizationSearchForm">
    <put name="content" value="/organization/searchForm.jsp"
    type="page"/> </definition> </tiles-definitions>

    A <c:redirect url="common/startPage.jsf"/> will produce the desired
    effect, i.e. the start page is composed correctly and I can see the
    message startPage.jsp produces via <h:outputText/>.

    And here's the catch: if I do a <c:redirect
    url="organization/searchForm.jsf"/> I get a page with
    mainNavigation.jsp and sideActions.jsp correctly included and
    translated into HTML, yet the content of organization/searchForm.jsp
    is copied _verbatim_ into the HTML page. This means that I can see the
    JSP code from organization/searchForm.jsp in the generated page's
    source code.

    I started playing around with the contents of startPage.jsp and
    organization/searchForm.jsp and ended up swapping it, i.e I copied
    startPage.jsp's JSP code into organization/searchForm.jsp and vice
    versa. Lo and behold: I can see my organizationSearchForm on the start
    page, and organization/searchForm.jsp is still copied verbatim into
    the generated HTML output. So the problem _seems_ to be the tiles
    definition /organization/searchForm.tiles itself and _not_ the JSP
    content in organization/searchForm.jsp.

    So could anyone give me a clue what is going on here since I am on the
    verge of throwing up after staring at this phenomenon for the last
    four days? I am using myfaces-1.0.9 in JBoss 4.0.2 under JDK 1.4.2_08
    and any help would be _greatly_ appreciated.

    Cheers,

    Olaf
    --------------------------------------------
    Easynet GmbH (http://www.de.easynet.net) Olaf Bergner, System
    Integrations Harburger Schlossstrasse 1, D-21079 Hamburg
    fon: +49-40-77175-434, fax: +49-40-77175-519 # Easynet is part of the
    easynet group plc (www.Easynetgroup.net)

  • Neal Haggard at Jun 22, 2005 at 3:28 pm
    Olaf,

    I don't see anything major that pops out at me. One thing I do notice is you're using <f:verbatim> around <div>'s when you could just use the <x:div> tag instead. Another important note is that in your top layout tile, I've found that you don't have to surround non-JSF tags in the <f:view> with <f:verbatim>, so you may find those weren't necessary anyway. You still have to surround non-JSF tags with <f:verbatim> in subviews. Why there's a difference, I don't know.

    I don't know if it's a cut-n-paste error or not, but your include of your taglibs at the top of the files seems inconsistent. In one you have a single '.', the other '..'. You may want to look at that and make sure that resolves to the real URL.

    Neal

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 10:07 AM
    To: MyFaces Discussion
    Subject: AW: [Tiles] Included tile not compiled (additional info)

    Neal,

    thx for your prompt reply. Here's the - in my view - relevant snippet from my topmost layout JSP:

    <%-- BEGIN MAIN CONTENT AREA --%>
    <f:verbatim>
    <div id="content">
    </f:verbatim>
    <f:subview id="contentView">
    <tiles:insert attribute="content" flush="false" />
    </f:subview>
    <f:verbatim>
    </div>
    </f:verbatim>
    <%-- END MAIN CONTENT --%>

    Here's the tile /organization/searchForm.jsp which won't get compiled:

    <h:form id="organizationSearchForm">
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['organization.headline.search']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>
    <h:panelGrid columns="3">
    <h:outputText
    value="#{msg['organization.label.searchform.byCommonFields']}" />
    <h:inputText id="byCommonFieldsSearchString" styleClass="ewsgrey"
    value="#{organizationSearch.searchString}" />
    <x:commandButton id="byCommonFieldsBtn" styleClass="ewsgrey"
    action="#{organizationSearch.searchByCommonFields}"
    image="#{msg['common.image.searchBtn']}" />
    [more rows]
    </h:panelGrid>
    </h:form>

    but this - /common/startPage.jsp will:

    <%@ include file="./inc/taglibs.inc" %>
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['common.headline.home']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>

    As I said in my original post: If I swap the contents of searchForm.jsp and startPage.jsp I can see the correct output for searchForm.jsp, but now startPage.jsp will be copied verbatim into the final HTML page. I think it was Arthur C. Clarke who said: "Any sufficiently advanced technology will be indistinguishable from magic." Glad that I happen to see this in my days ;-)

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Neal Haggard
    Gesendet: Mittwoch, 22. Juni 2005 15:27
    An: MyFaces Discussion
    Betreff: RE: [Tiles] Included tile not compiled (additional info)


    Olaf,

    The reason the URL is not changing is you need to specify in your
    navigation rules that the case is a redirect by adding the <redirect
    /> tag to the rule. Something along the lines of:

    <navigation-rule>
    <from-view-id>*</from-view-id>

    <navigation-case>
    <from-outcome>organization-search</from-outcome>
    <to-view-id>/organization/searchForm.jsp</to-view-id>
    <redirect />
    </navigation-case>
    </navigation-rule>

    As for your other issue (seeing the JSP source in the generated
    HTML) we have not had that issue, and we are using tiles to pull
    together the multiple layouts for our site.
    Perhaps could you give us a code snippet that shows where your
    'content' tile is inserted in your layout tile definition and then
    some of your searchForm.jsf or something?

    Sorry you're having such problems and hope they clear up,

    Neal Haggard
    Senior Developer
    SAS Institute

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 9:06 AM
    To: MyFaces Discussion
    Subject: [Tiles] Included tile not compiled (additional info)

    Since nobody responded to my first post and sine further this problem
    is starting to become a real showstopper potentially blocking our
    adoption of JSF I try to give some further info, little as it may be.

    I have a main navigation bar for switching between modules, registered
    as global navigation rules. If I switch from
    /common/startPage.jsf[=tiles] to /organization/searchForm.jsf by
    clicking on the navigation link
    (h:commandLink) the URL in my browser remains unchanged, yet the
    "sideActions" tile will be correctly inserted and transformed into
    HTML. The "content" tile, though, will be inserted verbatim, i.e. I
    can see the JSP source in the generated HTML. Only after a second
    click on the same link does the URL change.

    If I change back to /common/startPage.jsf I need two clicks to change
    the browser URL, yet the "sideActions" as well as the "content" tile
    both will be inserted and transformed correctly.

    Since even after staring at the tiles-defs.xml for nearly a week
    without noticing any structural differences between
    /common/startPage.tiles and /organization/searchForm.tiles I strongly
    suspect that this is a bug in MyFaces' tiles integration. Did anyone
    encounter a similar phenomenon and maybe found a workaround for it?

    Thx,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Olaf Bergner
    Gesendet: Dienstag, 21. Juni 2005 13:35
    An: users@myfaces.apache.org
    Betreff: [Tiles] Included not compiled


    I just started using JSF, trying to get MyFaces' Tiles integration
    to work.
    So I created a layout page which uses tiles:insert to include the
    mainbar, the sidebar and the content pane. In my tiles definition
    file I have a base definition which all other definitions - two so
    far - extend.

    Here's my tiles definition file:

    <tiles-definitions>
    <definition name="/ews.base" path="/template/layout.jsp" id="basePage">
    <put name="mainNavigation" value="/common/mainNavigation.jsp"
    type="page"/>
    <put name="sideActions" value="/common/sideActions.jsp" type="page"/>
    <put name="content" value="/common/empty.jsp" type="page"/>
    </definition> <definition name="/common/startPage.tiles"
    extends="/ews.base"
    id="startPage">
    <put name="content" value="/startPage.jsp" type="page"/>
    </definition> <definition name="/organization/searchForm.tiles"
    extends="/ews.base"
    id="organizationSearchForm">
    <put name="content" value="/organization/searchForm.jsp"
    type="page"/> </definition> </tiles-definitions>

    A <c:redirect url="common/startPage.jsf"/> will produce the desired
    effect, i.e. the start page is composed correctly and I can see the
    message startPage.jsp produces via <h:outputText/>.

    And here's the catch: if I do a <c:redirect
    url="organization/searchForm.jsf"/> I get a page with
    mainNavigation.jsp and sideActions.jsp correctly included and
    translated into HTML, yet the content of organization/searchForm.jsp
    is copied _verbatim_ into the HTML page. This means that I can see
    the JSP code from organization/searchForm.jsp in the generated
    page's source code.

    I started playing around with the contents of startPage.jsp and
    organization/searchForm.jsp and ended up swapping it, i.e I copied
    startPage.jsp's JSP code into organization/searchForm.jsp and vice
    versa. Lo and behold: I can see my organizationSearchForm on the
    start page, and organization/searchForm.jsp is still copied verbatim
    into the generated HTML output. So the problem _seems_ to be the
    tiles definition /organization/searchForm.tiles itself and _not_ the
    JSP content in organization/searchForm.jsp.

    So could anyone give me a clue what is going on here since I am on
    the verge of throwing up after staring at this phenomenon for the
    last four days? I am using myfaces-1.0.9 in JBoss 4.0.2 under JDK
    1.4.2_08 and any help would be _greatly_ appreciated.

    Cheers,

    Olaf
    --------------------------------------------
    Easynet GmbH (http://www.de.easynet.net) Olaf Bergner, System
    Integrations Harburger Schlossstrasse 1, D-21079 Hamburg
    fon: +49-40-77175-434, fax: +49-40-77175-519 # Easynet is part of
    the easynet group plc (www.Easynetgroup.net)

  • Olaf Bergner at Jun 23, 2005 at 9:49 am
    Neal,

    thanks for your efforts. I switched to f:verbatim instead of x:div when
    trying a recent nightly build in order to check if the problem would
    disappear. This build introduced the x:html tag and refactored the x:div tag
    yet none was registered with the MyFaces taglib.

    I knew that the include path would cause confusion but they are definitely
    correct. I take it as a decisive proof that I can see the contents of
    taglibs.inc in the generated HTML output. So the include directive is
    executed correctly but the JSP won't get compiled. I dunno, maybe it's got
    something to do with the moonphases ...

    The question when it is allowed to use non-jsf tags in a jsf page is
    constantly puzzling me. While I have been told that this is strictly
    forbidden I have seen lots of examples where exactly this is done,
    apparently without any adverse effects. Then again I just started using jsf
    and so there's hope that one day I get things sorted out nicely.

    Anyway, your help was greatly appreciated. Sorry for the harsh tone of my
    follow-up email, but I had been struggling with this problem for quite a few
    days, sometimes well into the night, and was desperate.

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Neal Haggard
    Gesendet: Mittwoch, 22. Juni 2005 17:28
    An: MyFaces Discussion
    Betreff: RE: [Tiles] Included tile not compiled (additional info)


    Olaf,

    I don't see anything major that pops out at me. One thing I
    do notice is you're using <f:verbatim> around <div>'s when you
    could just use the <x:div> tag instead. Another important note
    is that in your top layout tile, I've found that you don't have
    to surround non-JSF tags in the <f:view> with <f:verbatim>, so
    you may find those weren't necessary anyway. You still have to
    surround non-JSF tags with <f:verbatim> in subviews. Why there's
    a difference, I don't know.

    I don't know if it's a cut-n-paste error or not, but your
    include of your taglibs at the top of the files seems
    inconsistent. In one you have a single '.', the other '..'. You
    may want to look at that and make sure that resolves to the real URL.

    Neal

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 10:07 AM
    To: MyFaces Discussion
    Subject: AW: [Tiles] Included tile not compiled (additional info)

    Neal,

    thx for your prompt reply. Here's the - in my view - relevant
    snippet from my topmost layout JSP:

    <%-- BEGIN MAIN CONTENT AREA --%>
    <f:verbatim>
    <div id="content">
    </f:verbatim>
    <f:subview id="contentView">
    <tiles:insert attribute="content" flush="false" />
    </f:subview>
    <f:verbatim>
    </div>
    </f:verbatim>
    <%-- END MAIN CONTENT --%>

    Here's the tile /organization/searchForm.jsp which won't get compiled:

    <h:form id="organizationSearchForm">
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['organization.headline.search']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>
    <h:panelGrid columns="3">
    <h:outputText
    value="#{msg['organization.label.searchform.byCommonFields']}" />
    <h:inputText id="byCommonFieldsSearchString" styleClass="ewsgrey"
    value="#{organizationSearch.searchString}" />
    <x:commandButton id="byCommonFieldsBtn" styleClass="ewsgrey"
    action="#{organizationSearch.searchByCommonFields}"
    image="#{msg['common.image.searchBtn']}" />
    [more rows]
    </h:panelGrid>
    </h:form>

    but this - /common/startPage.jsp will:

    <%@ include file="./inc/taglibs.inc" %>
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['common.headline.home']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>

    As I said in my original post: If I swap the contents of
    searchForm.jsp and startPage.jsp I can see the correct output for
    searchForm.jsp, but now startPage.jsp will be copied verbatim
    into the final HTML page. I think it was Arthur C. Clarke who
    said: "Any sufficiently advanced technology will be
    indistinguishable from magic." Glad that I happen to see this in
    my days ;-)

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Neal Haggard
    Gesendet: Mittwoch, 22. Juni 2005 15:27
    An: MyFaces Discussion
    Betreff: RE: [Tiles] Included tile not compiled (additional info)


    Olaf,

    The reason the URL is not changing is you need to specify in your
    navigation rules that the case is a redirect by adding the <redirect
    /> tag to the rule. Something along the lines of:

    <navigation-rule>
    <from-view-id>*</from-view-id>

    <navigation-case>
    <from-outcome>organization-search</from-outcome>
    <to-view-id>/organization/searchForm.jsp</to-view-id>
    <redirect />
    </navigation-case>
    </navigation-rule>

    As for your other issue (seeing the JSP source in the generated
    HTML) we have not had that issue, and we are using tiles to pull
    together the multiple layouts for our site.
    Perhaps could you give us a code snippet that shows where your
    'content' tile is inserted in your layout tile definition and then
    some of your searchForm.jsf or something?

    Sorry you're having such problems and hope they clear up,

    Neal Haggard
    Senior Developer
    SAS Institute

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 9:06 AM
    To: MyFaces Discussion
    Subject: [Tiles] Included tile not compiled (additional info)

    Since nobody responded to my first post and sine further this problem
    is starting to become a real showstopper potentially blocking our
    adoption of JSF I try to give some further info, little as it may be.

    I have a main navigation bar for switching between modules, registered
    as global navigation rules. If I switch from
    /common/startPage.jsf[=tiles] to /organization/searchForm.jsf by
    clicking on the navigation link
    (h:commandLink) the URL in my browser remains unchanged, yet the
    "sideActions" tile will be correctly inserted and transformed into
    HTML. The "content" tile, though, will be inserted verbatim, i.e. I
    can see the JSP source in the generated HTML. Only after a second
    click on the same link does the URL change.

    If I change back to /common/startPage.jsf I need two clicks to change
    the browser URL, yet the "sideActions" as well as the "content" tile
    both will be inserted and transformed correctly.

    Since even after staring at the tiles-defs.xml for nearly a week
    without noticing any structural differences between
    /common/startPage.tiles and /organization/searchForm.tiles I strongly
    suspect that this is a bug in MyFaces' tiles integration. Did anyone
    encounter a similar phenomenon and maybe found a workaround for it?

    Thx,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Olaf Bergner
    Gesendet: Dienstag, 21. Juni 2005 13:35
    An: users@myfaces.apache.org
    Betreff: [Tiles] Included not compiled


    I just started using JSF, trying to get MyFaces' Tiles integration
    to work.
    So I created a layout page which uses tiles:insert to include the
    mainbar, the sidebar and the content pane. In my tiles definition
    file I have a base definition which all other definitions - two so
    far - extend.

    Here's my tiles definition file:

    <tiles-definitions>
    <definition name="/ews.base" path="/template/layout.jsp"
    id="basePage">
    <put name="mainNavigation" value="/common/mainNavigation.jsp"
    type="page"/>
    <put name="sideActions" value="/common/sideActions.jsp"
    type="page"/>
    <put name="content" value="/common/empty.jsp" type="page"/>
    </definition> <definition name="/common/startPage.tiles"
    extends="/ews.base"
    id="startPage">
    <put name="content" value="/startPage.jsp" type="page"/>
    </definition> <definition name="/organization/searchForm.tiles"
    extends="/ews.base"
    id="organizationSearchForm">
    <put name="content" value="/organization/searchForm.jsp"
    type="page"/> </definition> </tiles-definitions>

    A <c:redirect url="common/startPage.jsf"/> will produce the desired
    effect, i.e. the start page is composed correctly and I can see the
    message startPage.jsp produces via <h:outputText/>.

    And here's the catch: if I do a <c:redirect
    url="organization/searchForm.jsf"/> I get a page with
    mainNavigation.jsp and sideActions.jsp correctly included and
    translated into HTML, yet the content of organization/searchForm.jsp
    is copied _verbatim_ into the HTML page. This means that I can see
    the JSP code from organization/searchForm.jsp in the generated
    page's source code.

    I started playing around with the contents of startPage.jsp and
    organization/searchForm.jsp and ended up swapping it, i.e I copied
    startPage.jsp's JSP code into organization/searchForm.jsp and vice
    versa. Lo and behold: I can see my organizationSearchForm on the
    start page, and organization/searchForm.jsp is still copied verbatim
    into the generated HTML output. So the problem _seems_ to be the
    tiles definition /organization/searchForm.tiles itself and _not_ the
    JSP content in organization/searchForm.jsp.

    So could anyone give me a clue what is going on here since I am on
    the verge of throwing up after staring at this phenomenon for the
    last four days? I am using myfaces-1.0.9 in JBoss 4.0.2 under JDK
    1.4.2_08 and any help would be _greatly_ appreciated.

    Cheers,

    Olaf
    --------------------------------------------
    Easynet GmbH (http://www.de.easynet.net) Olaf Bergner, System
    Integrations Harburger Schlossstrasse 1, D-21079 Hamburg
    fon: +49-40-77175-434, fax: +49-40-77175-519 # Easynet is part of
    the easynet group plc (www.Easynetgroup.net)

  • Sean Schofield at Jun 23, 2005 at 8:46 pm
    David Geary, who is the main architect of Tiles, is working on a Tiles
    + JSF solution as part of Shale. He mentioned to me that he will be
    checking something in shortly. I'm very interested to see it b/c
    right now I can't use Shale dialogs together with the MyFaces Tiles
    view handler and I want them both ;-)

    sean
    On 6/23/05, Olaf Bergner wrote:
    Neal,

    thanks for your efforts. I switched to f:verbatim instead of x:div when
    trying a recent nightly build in order to check if the problem would
    disappear. This build introduced the x:html tag and refactored the x:div tag
    yet none was registered with the MyFaces taglib.

    I knew that the include path would cause confusion but they are definitely
    correct. I take it as a decisive proof that I can see the contents of
    taglibs.inc in the generated HTML output. So the include directive is
    executed correctly but the JSP won't get compiled. I dunno, maybe it's got
    something to do with the moonphases ...

    The question when it is allowed to use non-jsf tags in a jsf page is
    constantly puzzling me. While I have been told that this is strictly
    forbidden I have seen lots of examples where exactly this is done,
    apparently without any adverse effects. Then again I just started using jsf
    and so there's hope that one day I get things sorted out nicely.

    Anyway, your help was greatly appreciated. Sorry for the harsh tone of my
    follow-up email, but I had been struggling with this problem for quite a few
    days, sometimes well into the night, and was desperate.

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Neal Haggard
    Gesendet: Mittwoch, 22. Juni 2005 17:28
    An: MyFaces Discussion
    Betreff: RE: [Tiles] Included tile not compiled (additional info)


    Olaf,

    I don't see anything major that pops out at me. One thing I
    do notice is you're using <f:verbatim> around <div>'s when you
    could just use the <x:div> tag instead. Another important note
    is that in your top layout tile, I've found that you don't have
    to surround non-JSF tags in the <f:view> with <f:verbatim>, so
    you may find those weren't necessary anyway. You still have to
    surround non-JSF tags with <f:verbatim> in subviews. Why there's
    a difference, I don't know.

    I don't know if it's a cut-n-paste error or not, but your
    include of your taglibs at the top of the files seems
    inconsistent. In one you have a single '.', the other '..'. You
    may want to look at that and make sure that resolves to the real URL.

    Neal

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 10:07 AM
    To: MyFaces Discussion
    Subject: AW: [Tiles] Included tile not compiled (additional info)

    Neal,

    thx for your prompt reply. Here's the - in my view - relevant
    snippet from my topmost layout JSP:

    <%-- BEGIN MAIN CONTENT AREA --%>
    <f:verbatim>
    <div id="content">
    </f:verbatim>
    <f:subview id="contentView">
    <tiles:insert attribute="content" flush="false" />
    </f:subview>
    <f:verbatim>
    </div>
    </f:verbatim>
    <%-- END MAIN CONTENT --%>

    Here's the tile /organization/searchForm.jsp which won't get compiled:

    <h:form id="organizationSearchForm">
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['organization.headline.search']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>
    <h:panelGrid columns="3">
    <h:outputText
    value="#{msg['organization.label.searchform.byCommonFields']}" />
    <h:inputText id="byCommonFieldsSearchString" styleClass="ewsgrey"
    value="#{organizationSearch.searchString}" />
    <x:commandButton id="byCommonFieldsBtn" styleClass="ewsgrey"
    action="#{organizationSearch.searchByCommonFields}"
    image="#{msg['common.image.searchBtn']}" />
    [more rows]
    </h:panelGrid>
    </h:form>

    but this - /common/startPage.jsp will:

    <%@ include file="./inc/taglibs.inc" %>
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['common.headline.home']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>

    As I said in my original post: If I swap the contents of
    searchForm.jsp and startPage.jsp I can see the correct output for
    searchForm.jsp, but now startPage.jsp will be copied verbatim
    into the final HTML page. I think it was Arthur C. Clarke who
    said: "Any sufficiently advanced technology will be
    indistinguishable from magic." Glad that I happen to see this in
    my days ;-)

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Neal Haggard
    Gesendet: Mittwoch, 22. Juni 2005 15:27
    An: MyFaces Discussion
    Betreff: RE: [Tiles] Included tile not compiled (additional info)


    Olaf,

    The reason the URL is not changing is you need to specify in your
    navigation rules that the case is a redirect by adding the <redirect
    /> tag to the rule. Something along the lines of:

    <navigation-rule>
    <from-view-id>*</from-view-id>

    <navigation-case>
    <from-outcome>organization-search</from-outcome>
    <to-view-id>/organization/searchForm.jsp</to-view-id>
    <redirect />
    </navigation-case>
    </navigation-rule>

    As for your other issue (seeing the JSP source in the generated
    HTML) we have not had that issue, and we are using tiles to pull
    together the multiple layouts for our site.
    Perhaps could you give us a code snippet that shows where your
    'content' tile is inserted in your layout tile definition and then
    some of your searchForm.jsf or something?

    Sorry you're having such problems and hope they clear up,

    Neal Haggard
    Senior Developer
    SAS Institute

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 9:06 AM
    To: MyFaces Discussion
    Subject: [Tiles] Included tile not compiled (additional info)

    Since nobody responded to my first post and sine further this problem
    is starting to become a real showstopper potentially blocking our
    adoption of JSF I try to give some further info, little as it may be.

    I have a main navigation bar for switching between modules, registered
    as global navigation rules. If I switch from
    /common/startPage.jsf[=tiles] to /organization/searchForm.jsf by
    clicking on the navigation link
    (h:commandLink) the URL in my browser remains unchanged, yet the
    "sideActions" tile will be correctly inserted and transformed into
    HTML. The "content" tile, though, will be inserted verbatim, i.e. I
    can see the JSP source in the generated HTML. Only after a second
    click on the same link does the URL change.

    If I change back to /common/startPage.jsf I need two clicks to change
    the browser URL, yet the "sideActions" as well as the "content" tile
    both will be inserted and transformed correctly.

    Since even after staring at the tiles-defs.xml for nearly a week
    without noticing any structural differences between
    /common/startPage.tiles and /organization/searchForm.tiles I strongly
    suspect that this is a bug in MyFaces' tiles integration. Did anyone
    encounter a similar phenomenon and maybe found a workaround for it?

    Thx,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Olaf Bergner
    Gesendet: Dienstag, 21. Juni 2005 13:35
    An: users@myfaces.apache.org
    Betreff: [Tiles] Included not compiled


    I just started using JSF, trying to get MyFaces' Tiles integration
    to work.
    So I created a layout page which uses tiles:insert to include the
    mainbar, the sidebar and the content pane. In my tiles definition
    file I have a base definition which all other definitions - two so
    far - extend.

    Here's my tiles definition file:

    <tiles-definitions>
    <definition name="/ews.base" path="/template/layout.jsp"
    id="basePage">
    <put name="mainNavigation" value="/common/mainNavigation.jsp"
    type="page"/>
    <put name="sideActions" value="/common/sideActions.jsp"
    type="page"/>
    <put name="content" value="/common/empty.jsp" type="page"/>
    </definition> <definition name="/common/startPage.tiles"
    extends="/ews.base"
    id="startPage">
    <put name="content" value="/startPage.jsp" type="page"/>
    </definition> <definition name="/organization/searchForm.tiles"
    extends="/ews.base"
    id="organizationSearchForm">
    <put name="content" value="/organization/searchForm.jsp"
    type="page"/> </definition> </tiles-definitions>

    A <c:redirect url="common/startPage.jsf"/> will produce the desired
    effect, i.e. the start page is composed correctly and I can see the
    message startPage.jsp produces via <h:outputText/>.

    And here's the catch: if I do a <c:redirect
    url="organization/searchForm.jsf"/> I get a page with
    mainNavigation.jsp and sideActions.jsp correctly included and
    translated into HTML, yet the content of organization/searchForm.jsp
    is copied _verbatim_ into the HTML page. This means that I can see
    the JSP code from organization/searchForm.jsp in the generated
    page's source code.

    I started playing around with the contents of startPage.jsp and
    organization/searchForm.jsp and ended up swapping it, i.e I copied
    startPage.jsp's JSP code into organization/searchForm.jsp and vice
    versa. Lo and behold: I can see my organizationSearchForm on the
    start page, and organization/searchForm.jsp is still copied verbatim
    into the generated HTML output. So the problem _seems_ to be the
    tiles definition /organization/searchForm.tiles itself and _not_ the
    JSP content in organization/searchForm.jsp.

    So could anyone give me a clue what is going on here since I am on
    the verge of throwing up after staring at this phenomenon for the
    last four days? I am using myfaces-1.0.9 in JBoss 4.0.2 under JDK
    1.4.2_08 and any help would be _greatly_ appreciated.

    Cheers,

    Olaf
    --------------------------------------------
    Easynet GmbH (http://www.de.easynet.net) Olaf Bergner, System
    Integrations Harburger Schlossstrasse 1, D-21079 Hamburg
    fon: +49-40-77175-434, fax: +49-40-77175-519 # Easynet is part of
    the easynet group plc (www.Easynetgroup.net)

  • Olaf Bergner at Jun 24, 2005 at 9:02 am
    Sean,

    thx for the tip, I'll try to keep an eye on what's going on in Shale land.

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Sean Schofield
    Gesendet: Donnerstag, 23. Juni 2005 22:47
    An: MyFaces Discussion
    Betreff: Re: [Tiles] Included tile not compiled (additional info)


    David Geary, who is the main architect of Tiles, is working on a Tiles
    + JSF solution as part of Shale. He mentioned to me that he will be
    checking something in shortly. I'm very interested to see it b/c
    right now I can't use Shale dialogs together with the MyFaces Tiles
    view handler and I want them both ;-)

    sean
    On 6/23/05, Olaf Bergner wrote:
    Neal,

    thanks for your efforts. I switched to f:verbatim instead of x:div when
    trying a recent nightly build in order to check if the problem would
    disappear. This build introduced the x:html tag and refactored
    the x:div tag
    yet none was registered with the MyFaces taglib.

    I knew that the include path would cause confusion but they are
    definitely
    correct. I take it as a decisive proof that I can see the contents of
    taglibs.inc in the generated HTML output. So the include directive is
    executed correctly but the JSP won't get compiled. I dunno,
    maybe it's got
    something to do with the moonphases ...

    The question when it is allowed to use non-jsf tags in a jsf page is
    constantly puzzling me. While I have been told that this is strictly
    forbidden I have seen lots of examples where exactly this is done,
    apparently without any adverse effects. Then again I just
    started using jsf
    and so there's hope that one day I get things sorted out nicely.

    Anyway, your help was greatly appreciated. Sorry for the harsh
    tone of my
    follow-up email, but I had been struggling with this problem
    for quite a few
    days, sometimes well into the night, and was desperate.

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Neal Haggard
    Gesendet: Mittwoch, 22. Juni 2005 17:28
    An: MyFaces Discussion
    Betreff: RE: [Tiles] Included tile not compiled (additional info)


    Olaf,

    I don't see anything major that pops out at me. One thing I
    do notice is you're using <f:verbatim> around <div>'s when you
    could just use the <x:div> tag instead. Another important note
    is that in your top layout tile, I've found that you don't have
    to surround non-JSF tags in the <f:view> with <f:verbatim>, so
    you may find those weren't necessary anyway. You still have to
    surround non-JSF tags with <f:verbatim> in subviews. Why there's
    a difference, I don't know.

    I don't know if it's a cut-n-paste error or not, but your
    include of your taglibs at the top of the files seems
    inconsistent. In one you have a single '.', the other '..'. You
    may want to look at that and make sure that resolves to the real URL.

    Neal

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 10:07 AM
    To: MyFaces Discussion
    Subject: AW: [Tiles] Included tile not compiled (additional info)

    Neal,

    thx for your prompt reply. Here's the - in my view - relevant
    snippet from my topmost layout JSP:

    <%-- BEGIN MAIN CONTENT AREA --%>
    <f:verbatim>
    <div id="content">
    </f:verbatim>
    <f:subview id="contentView">
    <tiles:insert attribute="content" flush="false" />
    </f:subview>
    <f:verbatim>
    </div>
    </f:verbatim>
    <%-- END MAIN CONTENT --%>

    Here's the tile /organization/searchForm.jsp which won't get compiled:

    <h:form id="organizationSearchForm">
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['organization.headline.search']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>
    <h:panelGrid columns="3">
    <h:outputText
    value="#{msg['organization.label.searchform.byCommonFields']}" />
    <h:inputText id="byCommonFieldsSearchString" styleClass="ewsgrey"
    value="#{organizationSearch.searchString}" />
    <x:commandButton id="byCommonFieldsBtn" styleClass="ewsgrey"
    action="#{organizationSearch.searchByCommonFields}"
    image="#{msg['common.image.searchBtn']}" />
    [more rows]
    </h:panelGrid>
    </h:form>

    but this - /common/startPage.jsp will:

    <%@ include file="./inc/taglibs.inc" %>
    <f:verbatim>
    <h1>
    </f:verbatim>
    <h:outputText value="#{msg['common.headline.home']}" />
    <f:verbatim>
    </h1>
    </f:verbatim>

    As I said in my original post: If I swap the contents of
    searchForm.jsp and startPage.jsp I can see the correct output for
    searchForm.jsp, but now startPage.jsp will be copied verbatim
    into the final HTML page. I think it was Arthur C. Clarke who
    said: "Any sufficiently advanced technology will be
    indistinguishable from magic." Glad that I happen to see this in
    my days ;-)

    Cheers,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Neal Haggard
    Gesendet: Mittwoch, 22. Juni 2005 15:27
    An: MyFaces Discussion
    Betreff: RE: [Tiles] Included tile not compiled (additional info)


    Olaf,

    The reason the URL is not changing is you need to specify in your
    navigation rules that the case is a redirect by adding the <redirect
    /> tag to the rule. Something along the lines of:

    <navigation-rule>
    <from-view-id>*</from-view-id>

    <navigation-case>
    <from-outcome>organization-search</from-outcome>
    <to-view-id>/organization/searchForm.jsp</to-view-id>
    <redirect />
    </navigation-case>
    </navigation-rule>

    As for your other issue (seeing the JSP source in the generated
    HTML) we have not had that issue, and we are using tiles to pull
    together the multiple layouts for our site.
    Perhaps could you give us a code snippet that shows where your
    'content' tile is inserted in your layout tile definition and then
    some of your searchForm.jsf or something?

    Sorry you're having such problems and hope they clear up,

    Neal Haggard
    Senior Developer
    SAS Institute

    -----Original Message-----
    From: Olaf Bergner
    Sent: Wednesday, June 22, 2005 9:06 AM
    To: MyFaces Discussion
    Subject: [Tiles] Included tile not compiled (additional info)

    Since nobody responded to my first post and sine further
    this problem
    is starting to become a real showstopper potentially blocking our
    adoption of JSF I try to give some further info, little as
    it may be.
    I have a main navigation bar for switching between modules,
    registered
    as global navigation rules. If I switch from
    /common/startPage.jsf[=tiles] to /organization/searchForm.jsf by
    clicking on the navigation link
    (h:commandLink) the URL in my browser remains unchanged, yet the
    "sideActions" tile will be correctly inserted and transformed into
    HTML. The "content" tile, though, will be inserted verbatim, i.e. I
    can see the JSP source in the generated HTML. Only after a second
    click on the same link does the URL change.

    If I change back to /common/startPage.jsf I need two clicks
    to change
    the browser URL, yet the "sideActions" as well as the "content" tile
    both will be inserted and transformed correctly.

    Since even after staring at the tiles-defs.xml for nearly a week
    without noticing any structural differences between
    /common/startPage.tiles and /organization/searchForm.tiles
    I strongly
    suspect that this is a bug in MyFaces' tiles integration. Did anyone
    encounter a similar phenomenon and maybe found a workaround for it?

    Thx,

    Olaf
    -----Ursprüngliche Nachricht-----
    Von: Olaf Bergner
    Gesendet: Dienstag, 21. Juni 2005 13:35
    An: users@myfaces.apache.org
    Betreff: [Tiles] Included not compiled


    I just started using JSF, trying to get MyFaces' Tiles integration
    to work.
    So I created a layout page which uses tiles:insert to include the
    mainbar, the sidebar and the content pane. In my tiles definition
    file I have a base definition which all other definitions - two so
    far - extend.

    Here's my tiles definition file:

    <tiles-definitions>
    <definition name="/ews.base" path="/template/layout.jsp"
    id="basePage">
    <put name="mainNavigation" value="/common/mainNavigation.jsp"
    type="page"/>
    <put name="sideActions" value="/common/sideActions.jsp"
    type="page"/>
    <put name="content" value="/common/empty.jsp" type="page"/>
    </definition> <definition name="/common/startPage.tiles"
    extends="/ews.base"
    id="startPage">
    <put name="content" value="/startPage.jsp" type="page"/>
    </definition> <definition name="/organization/searchForm.tiles"
    extends="/ews.base"
    id="organizationSearchForm">
    <put name="content" value="/organization/searchForm.jsp"
    type="page"/> </definition> </tiles-definitions>

    A <c:redirect url="common/startPage.jsf"/> will produce
    the desired
    effect, i.e. the start page is composed correctly and I
    can see the
    message startPage.jsp produces via <h:outputText/>.

    And here's the catch: if I do a <c:redirect
    url="organization/searchForm.jsf"/> I get a page with
    mainNavigation.jsp and sideActions.jsp correctly included and
    translated into HTML, yet the content of
    organization/searchForm.jsp
    is copied _verbatim_ into the HTML page. This means that I can see
    the JSP code from organization/searchForm.jsp in the generated
    page's source code.

    I started playing around with the contents of startPage.jsp and
    organization/searchForm.jsp and ended up swapping it, i.e I copied
    startPage.jsp's JSP code into organization/searchForm.jsp and vice
    versa. Lo and behold: I can see my organizationSearchForm on the
    start page, and organization/searchForm.jsp is still
    copied verbatim
    into the generated HTML output. So the problem _seems_ to be the
    tiles definition /organization/searchForm.tiles itself
    and _not_ the
    JSP content in organization/searchForm.jsp.

    So could anyone give me a clue what is going on here since I am on
    the verge of throwing up after staring at this phenomenon for the
    last four days? I am using myfaces-1.0.9 in JBoss 4.0.2 under JDK
    1.4.2_08 and any help would be _greatly_ appreciated.

    Cheers,

    Olaf
    --------------------------------------------
    Easynet GmbH (http://www.de.easynet.net) Olaf Bergner, System
    Integrations Harburger Schlossstrasse 1, D-21079 Hamburg
    fon: +49-40-77175-434, fax: +49-40-77175-519 # Easynet is part of
    the easynet group plc (www.Easynetgroup.net)

Related Discussions

Discussion Navigation
viewthread | post
Discussion Overview
groupusers @
categoriesmyfaces
postedJun 21, '05 at 11:35a
activeJun 24, '05 at 9:02a
posts9
users3
websitemyfaces.apache.org

People

Translate

site design / logo © 2019 Grokbase