See my post before this.
Perhaps that solves your issue!
but I'm getting IO errors (Connection Refused) when the Tiles plugin tries to load /WEB-INF/tiles.xml. I'm going back and trying running the sample MyFaces-tiles-example app to see if it has the same issue.
-Matthias
-----Original Message-----
From: Matthias Wessendorf [mailto:[EMAIL PROTECTED] Sent: Wednesday, March 16, 2005 11:18 AM
To: MyFaces Discussion
Subject: Re: commandButton does not work with Tiles
Neal,
for instance you have navigation.jsp, that uses <h:commandLink action="showBarPage" ...../> for navigation to other pages inside your app, so you need faces-config.xml to realize that.
Now let's look at subviews (Tiles is the same, since a tile is embedded inside a subview).
You have pages like: -foo.jsp -bar.jsp -myPage.jsp
all off the include navigation.jsp as subview (eg. <f:subview="navi"><jsp:include page="navigation.jsp"/></f:subview> or with Tiles)
so each of that pages, *show* the navigation
if the foo.jsp is displayed(foo.jsf in browser), the view-id is "foo.jsp"
ok, if your faces-config navigation rule looks like:
<navigation-rule> <from-view-id>/navigation.jsp</from-view-id> <navigation-case> <from-outcome>showBarPage</from-outcome> <to-view-id>/bar.jsp</to-view-id> </navigation-case> </navigation-rule>
that does not work,
but if you have <from-view-id>/foo.jsp</from-view-id> that will work.
ok, now let's look what happens when bar.jsf (view-id "bar.jsp") is shown in the browser.
your navigation rules looks now:
<navigation-rule> <from-view-id>/foo.jsp</from-view-id> <navigation-case> <from-outcome>showBarPage</from-outcome> <to-view-id>/bar.jsp</to-view-id> </navigation-case> </navigation-rule>
yes, that doesn't work.
so add an other
<navigation-rule> <from-view-id>/bar.jsp</from-view-id> <navigation-case> <from-outcome>showBarPage</from-outcome> <to-view-id>/bar.jsp</to-view-id> </navigation-case> </navigation-rule>
that works.
Now you have two rules <navigation-rule> <from-view-id>/bar.jsp</from-view-id> <navigation-case> <from-outcome>showBarPage</from-outcome> <to-view-id>/bar.jsp</to-view-id> </navigation-case> </navigation-rule> <navigation-rule> <from-view-id>/foo.jsp</from-view-id> <navigation-case> <from-outcome>showBarPage</from-outcome> <to-view-id>/bar.jsp</to-view-id> </navigation-case> </navigation-rule>
A navigation rule like the first we talked about won't work! Only if you are interessted in viewing navigation.jsp (but navigation.jsp couldn't be presented since it has no <f:view>, because it is designed to be a *subview*
However, so instead of having two or more rules for the one navigation rule (<h:commandLink action="showBarPage" ...../>) from navigation.jsp why not using *global* one ?
<navigation-rule> <from-view-id>*</from-view-id> <navigation-case> <from-outcome>showBarPage</from-outcome> <to-view-id>/bar.jsp</to-view-id> </navigation-case> </navigation-rule>
I hope it was clear to you :) -Matthias
Neal Haggard wrote:
Matthias,
I have a question about 'you must use "global" navigation rulez for command components'. Why was this decided? Why can't the sub-view find the view-id for the parent? I'm new to JSF, so please forgive any ignorance here.
My group is trying to evaluate how to move to JSF and we thought we were going with MyFaces due to it's built-in tiles support. However, we're talking about a large application. I have a feeling trying to use global-navigation rules will not scale well as we get into the hundreds of pages.
Neal
-----Original Message----- From: Vinod Singh [mailto:[EMAIL PROTECTED] Sent: Wednesday, March 16, 2005 12:10 AM To: MyFaces Discussion Subject: Re: commandButton does not work with Tiles
Hi Matthias,
Here I am saying that when I click on the submit button (<h:commandButton id="submit" action="#{Persister.saveClient}" value
="#{Message.client_submit_button}" />) then method Persister.saveClient()
is not called. If I use this page without tiles then this method is called.
Thanks,
Vinod
Vinod,
when you use Subviews (<f:subview/>)
then you must use "global" navigation rulez for
command components (commadnButton or commandLink)
if you use something like:
<h:commandButton id="submit" action="myoutcome" value ="#{Message.client_submit_button}" />
you must have something like that in faces.-config.xml
<navigation-rule> <from-view-id>*</from-view-id> <navigation-case> <from-outcome>myoutcome</from-outcome>
<to-view-id>/myPageWithTiles.jsp</to-view-id> </navigation-case> </navigation-rule>
HTH, Matthias
Vinod Singh wrote:
Hi All,
I have created a simple jsf page, when I acces this page without tiles
then
everything works fine but with tiles control does not transfer to the desired class specified in the action attribute of commandButton.
Can anybody tell where I am wrong?
Thanks,
Vinod
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %> <f:loadBundle basename="Message" var="Message"/>
<f:view>
<html>
<head><title>Client</title></head>
<body>
<h:form id="clientForm">
<h:message for="clientForm" /><br />
<h:panelGrid columns="3">
<h:outputText value="#{Message.client_name_label}" />
<h:inputText id="client_id" value="#{Client.client_id}" required
="
true"> <f:validateLength maximum="30" minimum="3" /> </h:inputText> <h:message for="client_id" />
<h:outputText value="#{Message.client_desc_label}" /> <h:inputText id="description" value="#{Client.description}" required="true"> <f:validateLength maximum="50" minimum="1" /> </h:inputText> <h:message for="description" /> <h:commandButton id="submit" action="#{Persister.saveClient}"
value
="#{Message.client_submit_button}" /> </h:panelGrid> </h:form> </body> </html> </f:view>
-- Matthias We�endorf Aechterhoek 18 DE-48282 Emsdetten Germany phone: +49-2572-9170275 cell phone: +49-179-1118979 email: matzew AT apache DOT org url: http://www.wessendorf.net callto://mwessendorf (Skype) icq: 47016183

