|
Definition of Whitebeam XML Tags
|
rb:redirect
Server-side redirect to another page BodyThe body of this tag is always empty. Attributes
Attribute |
Required |
Description | src | implied |
Target for the redirection. The virtual-server based path to the
file to load in place of the current one.
|
Remarks This function directs the Presentation Engine to discard the output from
the page currently being generated and instead to load an alternative page,
run that and use the output as the generated results for this page. The 'src' attribute is the path name of the alternative resource to load.
The name is relative to the file system root of the clients virtual server Some notes: The Presentation Engine does not abort execution of the current
page. Execution is completed then the output is simply discarded. This means
that subsequent server side interactions with the templates will still take
place! The 'environment' that the redirected page sees is identical to that of
the original page - that is it the rb.page.env.xxxx() methods return the same
values, the HTTP access method is the same and the parameters are the same. The redirected page can in turn direct to a further page.
One of the most valuable uses for redirection is in the development
of server-side processed forms - or more precisely a sequence of forms similar
to a 'wizard' - where the user completes a multi-page form. Having completed
the first page the user moves to the next page.
Traditionally each 'form' would comprise two parts - the display of the form
and the processing of the data when it is submitted. Often a single file would
contain the display of one page and the processing of the previous page.
With 'redirect' the author can keep all this functionality in one file. The
page can look at the form post data and decide whether or not the data is being
submitted. If it is NOT being submitted then it displays the page. If it is
being submitted it process the form-data and then issues a <rb:redirect...>
tag to get the next page to display its data.
Example:
<rb:script>
var formdata = rb.page.formdata();
var submit = formdata.firstname;
</rb:script>
<rb:test expr="submit"/>
<rb:true>
<!-- This is a submit. Process the form data. -->
<rb:script>
processFormData(formdata);
</rb:script>
</rb:true>
<rb:false>
<!-- NOT a submit - display the form -->
<form ACTION="wiz1.rhtm" rb:marksession=yes
METHOD="POST" enctype="multipart/form-data">
<table border="1">
<tr><td>First Name</td>
<td><input type="radio"
name="action"
value="add" checked> </td>
</tr>
<tr><td>First Name</td>
<td><input type="text"
name="firstname"> </td>
</tr>
<tr><td>Surnane Name</td>
<td><input type="text"
name="surname"> </td>
</tr>
<tr>
<td><input type="file"
name="picture"></td>
</tr>
<tr>
<td><rb:eval
expr="documents[y].name"/></td>
</tr>
<tr>
<td><rb:eval expr="documents[y].descr"/></td>
</tr>
</table>
</form>
</rb:false>
</rb:test>
|
|
(loadtime : 9ms) |