| 
 |   | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object
  |
  +--sunlabs.brazil.template.Template
        |
        +--sunlabs.brazil.javascript.JavaScriptTemplate
The JavaScriptTemplate looks for each
 <server language="javascript"> (or
  <javascript>)
 tag in an HTML page and treats the following data up to the next
 </server> (or  </javascript>)
 tag as a JavaScript script to evaluate.
 
 The reason that JavaScript scripts are included in an HTML page is usually
 to generate dynamic, server-side content.  After running this template,
 everything between and including the <server> and
 </server> (or <javascript> and
 </javascript> tags is replaced by all output written
 to the JavaScript standard output stream (if any).
 
 All JavaScript fragments within a given page are evaluated in the same JavaScript
 interpreter.  The JavaScript interpreter actually lives for the entire duration
 of this Template object, so the user can implement
 persistence across requests.
 
The following configuration parameters are used to initialize this template.
prefix and
	server are set before this file is evaluated, and
	are references to the parameters passed to a handler
	init method.
 <server> and
	</server> tags with comments, so the user
	can keep track of where the dynamically generated content is coming
	from by examining the comments in the resultant HTML document.
	By default, the <server> and
	</server> are completely eliminated from the
	HTML document rather than changed into comments.
 Before evaluating each HTML document, this class sets variables in the JavaScript interpreter, which can be used to interact back with Java to do things like set the response headers:
Request Java object.  
	It is set anew at each request.
 Server object.
 eval is present as an attribute, all
 constructs of the form ${...} are substituted before processing the
 script.
 Here's a simple example of a JavaScript template:
 <html>
 <head>
 <title>JavaScript Example</title>
 </head>
 <body>
 <javascript>
 var s = "request=" + request;
 s += "<br>request.serverUrl is " + request.serverUrl();
 s += "<br>server hostName is " + server.hostName;
 s += "<br>prefix is " + prefix;
 s += "<br> <table>";
 
 // This is an example of using Java in JavaScript with LiveConnect
 var e = request.props.propertyNames();
 while (e.hasMoreElements()) {
   var prop = e.nextElement();
   s += "<tr><td>" + prop + "</td>";
   s += "<td>" + request.props.getProperty(prop) + "</td></tr>";
 }
 
 s += "</table>";
 
 // The last value computed or expressed is returned
 s;
 
 </javascript>
 </body>
 </html>
 
| Field Summary | 
| Fields inherited from class sunlabs.brazil.template.Template | 
| debug | 
| Constructor Summary | |
| JavaScriptTemplate() | |
| Method Summary | |
|  boolean | init(RewriteContext hr)Called at the beginning of each HTML document that this JavaScriptTemplateis asked to process. | 
|  void | tag_javascript(RewriteContext hr)Processes the <javascript>tag. | 
|  void | tag_server(RewriteContext hr)Processes the <server>tag. | 
| Methods inherited from class sunlabs.brazil.template.Template | 
| done | 
| Methods inherited from class java.lang.Object | 
| equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait | 
| Constructor Detail | 
public JavaScriptTemplate()
| Method Detail | 
public boolean init(RewriteContext hr)
JavaScriptTemplate is asked to process.
 
 The first time this method is called, the initialization script is
 sourced into the interpreter, based on the configuration properties
 in the Request
init in interface TemplateInterfaceinit in class Templatehr - The request and associated HTML document that will be
		processed.
true.public void tag_server(RewriteContext hr)
<server> tag.  Substitutes the
 result of evaluating the following JavaScript script into the resultant
 HTML document.
 
 Note: Currently, there is no mechanism for other language interpreters
 to share the same server tag.
hr - The request and associated HTML document that will be
		processed.public void tag_javascript(RewriteContext hr)
<javascript> tag.  Substitutes the
 result of evaluating the following JavaScript script into the resultant
 HTML document.
hr - The request and associated HTML document that will be
		processed.| 
 | Version 2.1, Generated 12/30/04 Copyright (c) 2001-2004, Sun Microsystems. | ||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||