You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@struts.apache.org by Sab <bh...@comcast.net> on 2005/02/08 19:58:19 UTC

Connecting buttons to go to next pages.-Help!

I have one action defined in struts config file .


<action path="/itemsearch">
Name="itemsearchForm"
Scope="session"
type="com.my.ItemSearchAction"> 

I have defined in global forward the 

<forward name="itemsearch" path=".my.itemsearch">

I have a tiles definition which takes me to 
Itemsearch.jsp

This jsp has 2 buttons.-Export and Cancel.
When I click on Export it takes me to another page called itemlist(which
again has 3 more buttons) page. When I click cancel it takes me to main
page .

How to connect the buttons to go to the further pages.
Please help!



---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org


Re: Connecting buttons to go to next pages.-Help!

Posted by Erik Weber <er...@mindspring.com>.

Sab wrote:

>I have one action defined in struts config file .
>
>
><action path="/itemsearch">
>Name="itemsearchForm"
>Scope="session"
>type="com.my.ItemSearchAction"> 
>
>I have defined in global forward the 
>
><forward name="itemsearch" path=".my.itemsearch">
>
>I have a tiles definition which takes me to 
>Itemsearch.jsp
>
>This jsp has 2 buttons.-Export and Cancel.
>When I click on Export it takes me to another page called itemlist(which
>again has 3 more buttons) page. When I click cancel it takes me to main
>page .
>
>How to connect the buttons to go to the further pages.
>Please help!
>
>
>  
>

Perhaps I don't understand your questions fully, but it seems like you 
are struggling with some basics here, so I'm going to try to give you a 
summary. Sorry if you already know all this (hard for me to tell).

The way you learn to "connect" buttons to facilitate page navigation is 
to first understand the basics of using HTTP in Servlet applications, 
regardless of Struts. In a typical scenario, the first user page 
(usually rendered as the response to a GET request -- a click on a 
hyperlink or direct entry into a browser address bar) contains an HTML 
form. An HTML form has at least two important parts, and usually three: 
The form fields (optional) for accepting user data, the action URL, 
which is where the browser's POST request will be sent, and the submit 
button, which causes the POST request (containing the user data if any) 
to be sent to the action URL. The server's response to the POST request 
is the next page your user will see. (Therefore, clicking the button on 
page 1 "takes" the user to page 2.) Struts does not abandon this concept 
for something else; it provides a framework that solidifies the concept 
for Servlet developers.

You generate an HTML form in a Struts JSP using the Struts Form 
(html:form) tag and related tags (all the other HTML tags). The use of 
these tags is all in the documentation under "User and Developer 
Guides". But, for example, you might combine the html:form tag, the 
html:cancel tag and the html:submit tag to create the simplest of forms. 
The tags just render HTML like any hand-made HTML form would contain, 
with added benefits (some of which are required by Struts) that will 
become clear as you learn to use Struts.

Servlets allow you to provide "virtual" action URLs on your Web server, 
basically, meaning that the action URL of your form (or the URL of a 
hyperlink for that matter) doesn't have to point to an actual HTML/JSP 
page that will be used in rendering the response. Rather, it can be a 
"logical" URL that triggers a server action -- typically this action 
does use some HTML/JSP page to render the response. The point is that 
the server gets a chance to interpret the URL and do interesting things 
*before* rendering the response, whereas a typical, dumb (non-Servlet, 
non-CGI enabled) Web server simply maps request URLs to response pages.

In the Struts world, these "virtual" URLs are your Action Mappings (such 
as yours with the "/itemsearch" path). The action URL (specified in your 
html:form tag) points to one of these Action Mappings. When the user 
clicks the submit button, the browser sends the POST request containing 
the form data to the server. The server, running Struts, routes the 
request to the Struts controller Servlet. The controller determines 
which Action Mapping matches the URL of the request (all configured in 
struts-config.xml), and consults the Action (your Java class) that 
corresponds to that mapping to manufacture the response (typically by 
examining the user's form input if any, gathering data from a database, 
putting the data in a place where the JSP needed to render the response 
can find it, and finally forwarding control to the JSP so that it can 
render the response using the gathered data -- the JSP serves as a 
template while the data gathered by the Action gives you the values that 
are not part of the template).

For me, the easiest way to get going with a new technology is to find an 
example that does something analogous to what I desire and to study it 
and then modify it for my circumstances. Have you tried going through 
some good examples? The wiki is a good place:

http://wiki.apache.org/struts/StrutsArticles

In particular, the second link ("Struttin' With Struts") was helpful to 
me when I was getting started, because the author gets right into it 
with examples, and the site is about as well organized as a tutorial 
site can be. Also, Struts comes bundled with a couple examples that 
you'll want to study (I would try a tutorial first).

So one more time, the basic parts involved in what you are trying to do:

1) a page containing an HTML form (rendered via JSP and Struts HTML tags 
-- this is page 1, which contains your button) with an action URL that 
corresponds to an Action Mapping
2) a response page (JSP) that is a template requiring data that is 
dynamic -- from your database -- to be complete (this is page 2)
3) an Action -- Java code that gathers the database data needed to 
complete the response JSP, makes it available to the JSP and then 
forwards to the JSP (forwarding means, in effect, "start writing a 
response to the browser that submitted the request")
4) an Action Mapping (an entry in struts-config.xml) that tells the 
controller Servlet what Action, JSP, etc., to use to respond to which 
action URL (looks like you already understand this part somewhat)
5) the controller Servlet (provided by Struts) which intercepts the 
request, parses the URL, finds the correct Action Mapping and uses that 
mapping to determine what Action and what JSP to use in rendering the 
response

I hope this helps.

Erik


>---------------------------------------------------------------------
>To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
>For additional commands, e-mail: user-help@struts.apache.org
>
>
>  
>

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscribe@struts.apache.org
For additional commands, e-mail: user-help@struts.apache.org