caucho
Resin 1.1
FAQ
Reference
JavaDoc
Demo
Java Tutorial

Getting Started
Configuration
Servlet
JSP
XTP/XSL
JavaScript
JS Library

Directives
Actions
Variables
Applications
 JSP Actions

JSP Actions
<%= expression %> Prints the value of expression evaluated the page's language.
<% scriptlet %> Executes the statements in scriptlet using the page's language.
<%! declaration %> Adds declaration code to the Servlet class
<jsp:include path="path"/> Includes the contents of the local URL at path during runtime.
<jsp:forward path="path" /> Forwards the request to another page, i.e. an internal redirect.
<jsp:useBean id="name" ...>... Creates a new bean and variable for the page.
<jsp:getProperty name="name" ... /> Prints a bean property.
<jsp:setProperty ... value="value"/> Sets a bean property to value.
<jsp:setProperty ... param="param"/> Sets a bean property to a parameter value.

JSP Actions

<%= expression %>

Prints the value of expression evaluated the page's language.

The expression action is equivalent to the following:

  out.write(expression);

It also has the following XML equivalent

<jsp:expression>
  expression
</jsp:expression>
The following simple example just prints the value of a form variable.

Name: <%= request.form.name %>
Name: George Washington

<% scriptlet %>

Executes the statements in scriptlet using the page's language.

The scriptlet is any statement list in the language, e.g. Java. The scriptlet can use any of the implicit variables, such as the request object and the out writer.

Scriptlets have the following XML equivalent

<jsp:scriptlet>
  scriptlet
</jsp:scriptlet>

<h1>Form results</h1>

<pre>
<%
  for (var key in request.form) {
    out.writeln(key + ": " + request.form[key]);
  }
%>
</pre>
<h1>Form results</h1>

<pre>
  Name: George Washington
  Rank: General
</pre>

<%! declaration %>

Adds declaration code to the Servlet class

JSP places the declaration code in the servlet class. In contrast, scriptlet and expression code are in a service method. So declarations can declare class variables and methods.
Note: Declarations are primarily useful for Java, but are allowed in JavaScript.

Declarations have the following XML equivalent

<jsp:declaration>
  declaration
</jsp:declaration>

<%= foo() %>

<%!
  private int foo() { return 1329; }
%>

<jsp:include path="path"/>

Includes the contents of the local URL at path during runtime.

jsp:include is a runtime action. It will call the included path just as if path its own HTTP request. The result of that page will be included in the current page.

path is relative to the current page. Its root is the root of the application.

For compile-time includes, use <%@ include file='path'%>

inc.jsp
<%= 2 + 2 %>
test.jsp
Header
<jsp:include path='inc.jsp'/>
Footer
Header
4
Footer

<jsp:forward path="path" />

Forwards the request to another page, i.e. an internal redirect.

If the page has already written some output, jsp:request will clear the output buffer.

path is relative to the current page.

fwd.jsp
<%= 2 + 2 %>
test.jsp
Header
<jsp:forward path='inc.jsp'/>
Footer
4

<jsp:useBean id="name" ...>...

Creates a new bean and variable for the page.

Attribute Value Meaning
id   The variable name for the bean
class   The bean's Java class
scope    
  page Only active in the page, stored in pageContext
  request Active for the request, stored in request
  session Active for the session, stored in session
  application Active for the application, stored in application

jsp:useBean enables a popular style JSP page creation where Java Beans calculate the content, and JSP formats the presentation.

jsp:useBean creates an initializes a JSP bean for the page. The scope attribute determines the bean lifetime. For example, a session bean will be created once in a session.

jsp:useBean assigns the bean to the variable name. It will also store the bean in the appropriate scope variable. For example, an application bean "foo" will be stored in the application variable.

jsp:useBean can also initialize beans. When jsp:useBean creates a new bean, it will execute the JSP in the jsp:useBean tag.

Roughly, JSP makes the following translation:

<jsp:useBean id='foo' 
                class='com.caucho.test.TestBean' 
                scope='session'>
  <% foo.myInitialization("test"); %gt;
</jsp:useBean>
com.caucho.test.TestBean foo;
foo = (com.caucho.test.TestBean) session.getValue("foo");
if (foo == null) {
  foo = new com.caucho.test.TestBean();
  session.value.foo = foo;
  foo.myInitialization("test");
}

<jsp:getProperty name="name" ... />

Prints a bean property.

Attribute Meaning
name The variable name for the bean
property The property name to retrieve.

jsp:getProperty converts property names following the bean standards.

Roughly, jsp:getProperty makes the following conversion:

<jsp:getProperty id='foo' property='bar'/>
out.write(foo.bar);

<jsp:setProperty ... value="value"/>

Sets a bean property to value.

Attribute Meaning
name The variable name for the bean
property The property name to set.
value The value to set.

If value is a runtime attribute, the bean property gets the expression value. If it's a static string, the value is first converted to the argument type and then set.

<jsp:setProperty name='foo' property='count' value='10'/>
foo.count = 10
<jsp:setProperty name='foo' property='string' value='10'/>
foo.string = 10
<jsp:setProperty name='foo' property='count' value='<%= 2 + 2 %>'/>
foo.count = 2 + 2
<jsp:setProperty name='foo' property='count' value='2 + 2'/>
error
<jsp:setProperty name='foo' property='char' value='10'/>
foo["char"] = '1'

<jsp:setProperty ... param="param"/>

Sets a bean property to a parameter value.

Attribute Value Meaning
name   The variable name for the bean
property property The property name to set.
  * Set all properties
param param The form parameter to use as a value.
  empty If missing, use property

The second form of jsp:setProperty lets scripts easily set Bean properties to form values.


Directives   Variables
Copyright © 1998-2000 Caucho Technology. All rights reserved.
Last modified: Thu, 16 Sep 1999 14:56:48 -0700 (PDT)