You actually DO need commandLink's to be nested inside of a form.
MyFaces has a convenience where it will create a dummy form for
commandLink's that aren't inside of a form, but this is not to spec.
What I was saying is that you don't need SEPARATE forms for all 3
commandLinks.  You can use one form for everything, your commandLinks
and your data.

I know how you feel.  6 months ago, I was doing the same thing.  Now,
I'm getting close to expert level.  MyFaces is really awesome, just
stick with it!


On Tue, 11 Jan 2005 16:30:33 -0500, Rick Reumann <[EMAIL PROTECTED]> wrote:
> Thanks Heath for you reply! For some reason I swore that I used to get
> errors when I didn't nest commandLink within h:form. I guess it can
> stand alone? Very nice.
> 
> Concerning my question 2 with the include file removing the from-view-id
> did the trick - well that coupled with me fixing the typo - I didn't
> realize that I had a verabtim tag around the wrong section. (Surprised
> it actually ran ok the way it was without throwing a syntax error.)
> 
> Regardless, all seems well now and my frustration (for the moment:) has
> subsided. I feel like I'm back to square one like I was when I first
> started with Struts and you start cursing at the computer because you
> can't figure out why things aren't working as you expect:)
> 
> Heath Borders wrote the following on 1/11/2005 3:56 PM:
> > 1. On each commandLink or commandButton, you have two things you can
> > specify: action and actionListener.  The actionListener gets called
> > after the link is clicked and all your data successfully updates to
> > your managed beans.  It executes the business logic you need.  The
> > action you specify is passed to your the navigation handler to tell it
> > what page to direct the user to.
> >
> > In general, you shouldn't need multiple forms on a page for cases like
> > this.  You just need different actions for your commandLinks.
> 
> >
> > 2. What we are doing in our app is using stateless navigation cases.
> > What this means is that you can go anywhere from anywhere.
> >
> > As far as I see it, the <from-view-id> is just a way of defining a
> > namespace for the navigation cases.  So, just get rid of the
> > <from-view-id>s and you should be good to go.
> >
> >
> > On Tue, 11 Jan 2005 15:04:03 -0500, Rick Reumann <[EMAIL PROTECTED]> wrote:
> >
> >>I know this isn't the main list for JSF and my questions below aren't
> >>MyFaces related, but this seems to be a more lively list than the yahoo
> >>group so maybe someone can help.
> >>
> >>My newbie-ness is showing here but I have two questions and the book I
> >>own on JSF doesn't seem to provide the answer (or else it does and I
> >>just haven't found it).
> >>
> >>Question 1:
> >>
> >>Take a typical example where you have a menu of links...
> >>
> >>View Really Cool Chart
> >>Check your account status
> >>View Some Amazing Report
> >>
> >>When the user clicks on one of these exciting links it needs to invoke
> >>some kind of action (in the JSF world I guess this would be a backing
> >>bean) so that the proper business logic takes place in the background
> >>and you are then forwarded to the proper displaying JSP. Using Struts
> >>this was very clean since each link could map to an Action in my
> >>struts-config file.
> >>
> >>How do I accomplish the above with JSF? Is the easiest to use
> >>commandLink and wrap each link in <h:form>..</h:form>? That seems a bit
> >>verbose but if that's the typical practice I can deal with it. Remember
> >>each link could need to access a totally different object(backing bean.)
> >>It seems awkward to have to nest each link inside of <h:form>
> >>
> >>Question 2:
> >>
> >>This should be simple, but I'm stumped. If I include a menu.jsp file on
> >>a page that is basically a bunch of links, how do I set up the faces
> >>config file for the from-view-id? Assuming home.jsp includes menu.jsp I
> >>can't seem to get the links to work from menu.jsp regardless if I use
> >>menu.jsp or home.jsp for the from-view-id. I even tried use the wilcard
> >>* and the menu still doesn't work (page compiles and displays links
> >>fine, but links do not result in appropriate pages being called). If I
> >>move the code out of being an include file and paste it directly into
> >>home.jsp the links work fine.
> >>
> >>Here are the three relevant files. (using header.jsp insted of menu.jsp
> >>for this example. Also, is there a way to avoid all this f:verbatim code
> >>in the include file? It sure make sthe code difficult to read and it
> >>doesn't seem nice. I should be able to include any files - JSF seems to
> >>require me to really edit files that I want to include).
> >>
> >>header.jsp  (what gets included)
> >>------------
> >><%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f" %>
> >><%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h" %>
> >><%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c" %>
> >><f:verbatim>
> >>    <h1>
> >></f:verbatim>
> >><h:outputText value="#{msgs.employeeApp}"/>
> >><f:verbatim>
> >>    </h1>
> >>    <h:form>
> >>        <h:commandLink
> >>action="#{employeeBacking.setUpForAdd}"><h:outputText
> >>value="#{msgs.addEmployee}"/></h:commandLink>
> >>        <f:verbatim>
> >>            <div class="spacer">&nbsp;</div>
> >>        </f:verbatim>
> >>        <h:commandLink
> >>action="#{employeeBacking.getEmployees}"><h:outputText
> >>value="#{msgs.viewEmployees}"/></h:commandLink>
> >>    </h:form>
> >></f:verbatim>
> >>
> >>home.jsp
> >>---------
> >><html>
> >><%@ taglib uri="http://java.sun.com/jsf/core"; prefix="f" %>
> >><%@ taglib uri="http://java.sun.com/jsf/html"; prefix="h" %>
> >><%@ taglib uri="http://java.sun.com/jsp/jstl/core"; prefix="c" %>
> >>
> >><f:view>
> >>    <head>
> >>        <f:loadBundle basename="net.reumann.messages" var="msgs"/>
> >>        <title><h:outputText value="#{msgs.employeeApp}"/></title>
> >>        <link href="main.css" rel="stylesheet" type="text/css"/>
> >>    </head>
> >>    <body>
> >>        <f:facet name="header">
> >>            <f:subview id="header">
> >>                <c:import url="header.jsp"/>
> >>            </f:subview>
> >>        </f:facet>
> >>    </body>
> >></f:view>
> >></html>
> >>
> >>my-faces-config
> >>----------------
> >>
> >><navigation-rule>
> >>  <from-view-id>???tried several here???</from-view-id>
> >>  <navigation-case>
> >>     <from-outcome>toEmployeeForm</from-outcome>
> >>     <to-view-id>/employeeForm.jsp</to-view-id>
> >>  </navigation-case>
> >>  <navigation-case>
> >>     <from-outcome>toList</from-outcome>
> >>     <to-view-id>/employeeList.jsp</to-view-id>
> >>  </navigation-case>
> >></navigation-rule>
> >>
> >
> >
> 
> -- 
> Rick
> 


-- 
-Heath Borders-Wing
[EMAIL PROTECTED]

Reply via email to