aspose file tools*
The moose likes JSF and the fly likes template navigation  problem Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Java » JSF
Bookmark "template navigation  problem" Watch "template navigation  problem" New topic
Author

template navigation problem

hassan ali
Ranch Hand

Joined: Apr 23, 2006
Posts: 127
i am reading a book in facelet (Facelets Essentials: Guide to JavaServerâ„¢ Faces View) trying faclet to get template
in navigation between pages i got message like this one (/index.xhtmlNo saved view state could be found for the view identifier: /index.xhtml)

while index.xhtml page applay template and include menu.xhtml but command hayberlink apper in run time like this

kindly some one help
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16065
    
  21

I am making a guess that you're trying to set up a page template that serves as the container for different page implementations.

With facelets, you do this using the "ui:insert" tag in the container page and then define the contained page templates as ui:component objects which locate their container via the "template=" attribute of the ui:component element.

The URL that takes these resources (files) and assembles them into actual HTML is formed by stripping the "xhtml" off the ui component's filename and using the basename path as part of the web.xml-defined pattern. So, for example, since I like my JSF Facelets URLs to be in the form "basename.jsf", I could define uicomponents in "/forms/page1.xhtml", "/forms/page3.xhtml", "/forms/page3.xhtml". If these 3 components all used a common container template, I might put that in "/layouts/common.xhtml", and that's the value I'd code as the "template" attribute for the uicomponent tags in page1, page2, and page3.

Putting all that together, I could then visit page1 using the url http://myserver/mywebapp/forms/page1.jsf". To navigate to page2, I could then code the navigation pattern as "/forms/page2.jsf". Or, in JSF2, I could use the simplified forms: "/forms/page2" or even "page2" (since it's in the same directory as page1.


Customer surveys are for companies who didn't pay proper attention to begin with.
hassan ali
Ranch Hand

Joined: Apr 23, 2006
Posts: 127
thank you very much



in conclusion i can not navigate in facelet like jsf
<h:commandLink value="click" action="success">
or
<h:commandLink value="click" action="bean.login">

it must be like <a href="yachts.faces">here</a>

is that right?
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16065
    
  21

Facelets do not change how navigation, links or backing beans work. Nor do they change how J2EE sessions behave. Primarily, their function is to make it easier to lay out the geometry of JSF views for presentation in HTML.
hassan ali
Ranch Hand

Joined: Apr 23, 2006
Posts: 127
thank you


navigation does not effect by facelet becouse facelet job is to create template .

example in this book does not run navigation it create template and include menu
but
link display in run mode (< a href=# >)

why?
hassan ali
Ranch Hand

Joined: Apr 23, 2006
Posts: 127
thank you


navigation does not effect by facelet becouse facelet job is to create template . plays V in MVC

example in this book does not run navigation it create template and include menu
but

he puts links like

<h:commandLink value="Parrot" action="parrot" / >
<h:commandLink value="Eagle" action="eagle" />

and link display in run mode like this

<a href="#" onclick="return oamSubmitForm('j_id2','j_id2:j_id7');">Parrot</a>
<a href="#" onclick="return oamSubmitForm('j_id2','j_id2:j_id8');">Eagle</a>


why?
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16065
    
  21

In WEB-INF/faces-config.xml:



This would allow you to create a template named "/birds/parrot.xhtml" and the commandLink would navigate to it. By using the action name instead of the actual URL in the commandLink, it is possible to change the View Definition location without having to change the Views that reference it. Instead you'd just update the to-view-id in faces-config.xml.

The <a href="#" onclick="return oamSubmitForm('j_id2','j_id2:j_id7');">Parrot</a> is the generated HTML, correct?

To make debugging easier, you should add an "id=" attribute to your <form> and commandLink elements.
hassan ali
Ranch Hand

Joined: Apr 23, 2006
Posts: 127
thank you i have add your syntext to faces-config.xml:
and run time syntex was
< a href="#" onclick="return oamSubmitForm('j_id2','j_id2:link1');" id="j_id2:link1"> Parrot < /a >


why?
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16065
    
  21

hassan ali wrote:thank you i have add your syntext to faces-config.xml:
and run time syntex was
< a href="#" onclick="return oamSubmitForm('j_id2','j_id2:link1');" id="j_id2:link1"> Parrot < /a >


why?


Why not?
hassan ali
Ranch Hand

Joined: Apr 23, 2006
Posts: 127

link does not redirect to page parrot.xhtml or parrot.jsf

but href=#


that gives me redirect to index.xhtml with save state error


why navigation error happend ?
Tim Holloway
Saloon Keeper

Joined: Jun 25, 2001
Posts: 16065
    
  21

Ah. NOW I comprehend!

The "#" is just a placeholder. The real work is being done by the Javascript oamSubmitForm function supplied by JSF. Lack of saved state means that there's probably something wrong with how you specified how state is saved between pages. You have 2 options: client-side and server-side. Client-side is less secure and has more network overhead, server-side is more secure but has more server storage overhead.

In /WEB-INF/web.xml, you should have a statement like this:


Also check your server logs just in case you don't have enough memory allocated for your appserver.
hassan ali
Ranch Hand

Joined: Apr 23, 2006
Posts: 127
thank sir


it works

good bless you .

 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: template navigation problem