Author: steveh
Date: Thu Aug 19 12:54:31 2004
New Revision: 36631
Added:
incubator/beehive/trunk/netui/docs/guide/beehive.css (contents, props
changed)
incubator/beehive/trunk/netui/docs/guide/guide/
incubator/beehive/trunk/netui/docs/guide/guide/navGuidetoBuildingPageFlows.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/index.html (contents, props
changed)
incubator/beehive/trunk/netui/docs/guide/reference/
incubator/beehive/trunk/netui/docs/guide/reference/conRequiredParentTags.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/jpf/
incubator/beehive/trunk/netui/docs/guide/reference/jpf/action.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/jpf/catch.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/jpf/controller.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/jpf/exception-handler.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/jpf/forward.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/jpf/message-resources.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/jpf/navJpfAnnotations.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/jpf/simple-action.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/jpf/validation-error-forward.html
(contents, props changed)
incubator/beehive/trunk/netui/docs/guide/reference/navPageFlowandJSPReference.html
(contents, props changed)
Modified:
incubator/beehive/trunk/netui/ant/javadoc.xml
incubator/beehive/trunk/netui/docs/guide/tutorial/tutJPFStep4.html
incubator/beehive/trunk/netui/docs/guide/tutorial/tutJPFStep5.html
Log:
Adding nav pages, CSS file, and annotation reference pages.
Modified: incubator/beehive/trunk/netui/ant/javadoc.xml
==============================================================================
--- incubator/beehive/trunk/netui/ant/javadoc.xml (original)
+++ incubator/beehive/trunk/netui/ant/javadoc.xml Thu Aug 19 12:54:31 2004
@@ -32,7 +32,7 @@
<echo
message="================================================================================"/>
<echo message="build - Cleans and builds all doc, copies the result to
the forrest site. "/>
<echo message="clean - Deletes the built netui docs and associated temp
files."/>
- <echo message="generate-conceptual-doc - not yet implemented"/>
+ <echo message="generate-conceptual-doc - Copies the conceptual docs to
the build directory."/>
<echo message="generate-class-ref - Generates the Page Flow class
reference, using the standard Javadoc doclet."/>
<echo message="generate-taglib-ref - Generates the netui Tag Library
reference."/>
<echo message="copy-to-forrest - Copies the built netui docs to the
forrest site."/>
@@ -44,7 +44,7 @@
<!-- You must deploy netui before you run this target, or any of its
sub-targets. -->
<target name="build" description="Generate Javadoc for all core server and
tags">
<antcall target="clean"/>
- <!--<antcall target="generate-conceptual-doc"/>-->
+ <antcall target="generate-conceptual-doc"/>
<antcall target="generate-class-ref"/>
<antcall target="generate-taglib-ref"/>
</target>
@@ -54,12 +54,19 @@
<delete dir="${build.dir}/docs" failonerror="false"/>
</target>
+ <target name="generate-conceptual-doc">
+ <copy todir="${docs.build.dir}" overwrite="true">
+ <fileset dir="${docs.dir}/guide"/>
+ </copy>
+ </target>
+
+
<!-- The 'use' attribute is currently set to 'false' because of Java bug
5055723.
This bug will be fixed for the general release of JDK5.
Track the bug at:
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=5055723
When the fix arrives in JDK5, set use="true". -->
<target name="generate-class-ref">
- <javadoc destdir="${docs.build.dir}/java-class"
+ <javadoc destdir="${docs.build.dir}/reference/java-class"
maxmemory="256M"
windowtitle="Page Flow API Documentation"
doctitle="Page Flow API Documentation"
@@ -104,18 +111,18 @@
<target name="generate-taglib-ref" description="Uses a custom doclet to
generate XML from Java source files.">
<delete dir="${docs.temp}" failonerror="false"/>
- <delete dir="${docs.build.dir}/taglib" failonerror="false"/>
+ <delete dir="${docs.build.dir}/reference/taglib"
failonerror="false"/>
<mkdir dir="${docs.temp}/tld"/>
<mkdir dir="${docs.temp}/xml/tagref"/>
<mkdir dir="${docs.temp}/html/tagref"/>
- <mkdir dir="${docs.build.dir}/taglib"/>
+ <mkdir dir="${docs.build.dir}/reference/taglib"/>
<antcall target="copy-tld-files"/>
<javadoc classpathref="javadoc.classpath"
destdir="${docs.temp}/xml/tagref">
<doclet
name="org.apache.beehive.netui.tools.doclet.jsptagref.JspTagDoc"
path="${docs.dir}/tools/lib/jsptagrefdoclet.jar;${xbean.jar};${jsr173.jar};${docs.dir}/external/xalan-241.jar">
<param name="-source" value="1.5"/>
<param name="-tlddir" value="${docs.temp}/tld"/>
<param name="-xmldir"
value="${docs.temp}/xml/tagref"/>
- <param name="-htmldir"
value="${docs.build.dir}/taglib"/>
+ <param name="-htmldir"
value="${docs.build.dir}/reference/taglib"/>
<param name="-breakiterator"/>
</doclet>
<!-- <link href="http://feverhouse.com" offline="true"
packagelistLoc="../build/docs/java-class"/> -->
@@ -142,8 +149,8 @@
<include
name="org/apache/beehive/netui/tags/template"/>
</packageset>
</javadoc>
- <delete
file="${docs.build.dir}/taglib/taglib-frame-ignore.html" failonerror="false"/>
- <delete
file="${docs.build.dir}/taglib/taglib-summary-ignore.html" failonerror="false"/>
+ <delete
file="${docs.build.dir}/reference/taglib/taglib-frame-ignore.html"
failonerror="false"/>
+ <delete
file="${docs.build.dir}/reference/taglib/taglib-summary-ignore.html"
failonerror="false"/>
<delete dir="${docs.temp}" failonerror="false"/>
</target>
Added: incubator/beehive/trunk/netui/docs/guide/beehive.css
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/docs/guide/beehive.css Thu Aug 19
12:54:31 2004
@@ -0,0 +1,370 @@
+/* The styles most likely to be used are:
+ - h1, h2, h3, h4: Title, second, third, and fourth-level headings
within the body of a topic
+ - relatedTopics: Related Topics
+ - procTitle: Within How Do I:... topics, for headings within the body
of a topic that are followed by
+ bulleted procedures ("To do this").
+ - pre: For code blocks
+ - langinline: For code fragments within a (non-code) regular section.
+ - notepara: Notes
+*/
+h1,
+h2,
+h3,
+h4,
+h5,
+p,
+proctitle,
+relatedtopics {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ color: #000000;
+}
+
+/* Use h1 for the topic title */
+h1 {
+ font-weight: bold;
+ font-style: normal;
+ font-family: Verdana, sans-serif;
+ font-size: 142%;
+}
+
+/* Use h2 for all second-level headings. */
+h2 {
+ font-size: 135%;
+ margin-top: .5em;
+ margin-bottom: .5em;
+}
+
+/* Use h3 for all third-level headings. */
+h3 {
+ font-size: 120%;
+ margin-top: 1em;
+ margin-bottom: .6em;
+}
+
+/* Use h4 for all fourth-level headings.
+ Note: this style looks identical to the relatedtopics and proctitle styles.
*/
+h4 {
+ font-size: 110%;
+ margin-top: 1em;
+ margin-bottom: .6em;
+}
+
+/* Use h5 for all fifth-level heading.
+ Currently, there are no h5s in use in the document.*/
+h5 {
+ font-size: 105%;
+ margin-top: 1em;
+ margin-bottom: .6em;
+}
+
+/* Used for figure captions.*/
+p.arttitle {
+ font-weight: Bold;
+}
+
+/* The attribute style resembles the navtitle and partdesc styles in that it
keeps the next paragraph
+ flush with it. Use it when you list the attributes of syntax in a reference
topic.
+ The argument style should always be followed by the partdesc style. */
+p.attribute {
+ margin-top: .6em;
+ margin-bottom: 0px;
+ font-weight: Bold;
+
+}
+
+/* Standard HTML tag. */
+body {
+ padding: 0px 0px 0px 15px;
+ background: #ffffff;
+ color: #00000;
+ font-size: 80%;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+/* Standard HTML tag. */
+span.bold {
+ font-weight: Bold;
+}
+
+/* Standard HTML tag. */
+blockquote {
+ margin: 0em 0em 0em 2em;
+ padding: 0px;
+}
+
+/* Use the filepath style to designate file paths. It is currently a monospace
file. */
+span.filepath {
+ font: 100% Courier New Courier mono;
+ font-family: "Courier New", monospace;
+}
+
+/* The langinline style, like userinput and filepath, also renders text
monospace. Use this
+ to denote any individual instance of code in the context of non-coded text.
For example,
+ you would use this to denote the name of a class when you're describing it
in the paragraph that
+ precedes a code sample. To denote a code sample, however, use the <pre>
tag. */
+span.langinline {
+ font: 100% Courier New Courier mono;
+ font-family: "Courier New", monospace;
+}
+
+/* The listplain style narrows the margin between the formatted line and the
one before it.
+ It is to be used when creating a second paragraph in a list item, along
with the indent and
+ unindent buttons in Dreamweaver. */
+p.listplain {
+ margin-top: 0.7em;
+ margin-bottom: 0;
+ padding: 0em;
+}
+
+/* All text in the navtitle style should include a link to another topic.
+ The navtitle style is used in navigational node topics, in Class reference
+ topics, and in Method reference topics. For example, in the "Topics
+ Included in this Section" section of a navigation topic, you include the
links to all of
+ the topics in that chapter, along with a brief description of what you'll
find in each. Use the
+ navtitle style for the linked text. It differs from a normal paragraph
style in that it does not
+ include an extra paragraph break between the link and the descriptive text.
*/
+p.navtitle {
+ margin-top: .6em;
+ margin-bottom: 0em;
+}
+
+/* The navdesc style is used in navigational node topics, in Class reference
+ topics, and in Method reference topics. For example, in the "Topics
Included in this Section"
+ section of a navigation topic, you include the links to all of the topics
in that chapter,
+ along with a brief description of what you'll find in each. Use this style
for the descriptive text.
+ It indents the text one tab stop and keeps the margin between this style
and the navtitle style small. */
+p.navdesc {
+ margin-bottom: 1em;
+ margin-left: 1.9em;
+ margin-top: 0em;
+}
+
+/* The notepara style indents your text to the tab stop for note
+ text. You should always begin Note text with the word "Note:" in
+ boldface. */
+p.notepara {
+ margin-left: 2em;
+ margin-right: 2em;
+ margin-bottom: 1.5em;
+}
+
+/* The partname style resembles the navtitle style in that it keeps the next
paragraph flush with it.
+ You use it when you list the parameters in a reference topic. It is also
used currently in the
+ glossary to designate glossary entries. It renders text italic.
+ The partname style should always be followed by the partdesc style.*/
+p.partname {
+ margin-top: .6em;
+ margin-bottom: 0px;
+ font-style: italic;
+}
+
+/* Use the partdesc style when you describe the function of the properties,
parameters, or exceptions
+ listed in a reference topic. It is also used currently in the glossary to
designate glossary
+ definitions. The style indents the description slightly.
+ The partdesc style should always follow the partname or attribute style.*/
+p.partdesc {
+ margin-bottom: 1em;
+ margin-left: 1.9em;
+ margin-top: 0em;
+}
+
+/* The point of the proctitle style is the same as the point of the
relatedtopics style.
+ It applies to all headings that begin with "To [do something]". It looks
identical to the h4 style. */
+p.proctitle {
+ font-size: 110%;
+ margin-top: 1em;
+ margin-bottom: .6em;
+ font-weight: Bold;
+}
+
+/* Use the relatedtopics style, for the words "Related Topics" at the end of a
topic.
+ It looks identical to the h4 style. */
+p.relatedtopics {
+ font-size: 120%;
+ margin-top: 1em;
+ margin-bottom: .6em;
+ font-weight: Bold;
+}
+
+/* The syntax style renders text bold. Use it to style all syntax lines under
the
+ Syntax heading of reference topics. */
+p.syntax {
+ font-family: monospace;
+ line-height: normal;
+ font-weight: Bold;
+}
+
+/* Use the syntaxindent style to indent sub-properties of syntax declarations.
*/
+p.syntaxindent {
+ font-family: monospace;
+ line-height: normal;
+ font-weight: Bold;
+ margin-left: 1.5em;
+ margin-top: 0em;
+ margin-bottom: 0px;
+}
+
+p.fileurl {
+ font-size: 8pt;
+}
+
+p.modifieddate {
+ font-size: 8pt;
+}
+
+/* The syntaxpartname character style renders text italic. Use it to designate
+ syntax elements in reference topics.*/
+span.syntaxpartname {
+ font-style: italic;
+ font-weight: normal;
+}
+
+/* These specifications dictate the margins and width of tables. */
+table {
+ width: 90%;
+ margin-top: .6em;
+ margin-bottom: .3em;
+}
+
+/* The background of header cells is grey, and the text is bottom-aligned. */
+th {
+ padding-left: 8px;
+ padding-right: 8px;
+ background: #cccccc;
+ text-align: left;
+ font-size: 80%;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ vertical-align: bottom;
+}
+
+/* The text in normal table cells is top-aligned. */
+td {
+ padding-left: 8px;
+ padding-right: 8px;
+ background: #ffffff;
+ vertical-align: top;
+ font-size: 80%;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+}
+
+/* This style creates space above and below table text between paragraph and
the table borders. */
+p.tabletext {
+ margin-top: .6em;
+ margin-bottom: .6em;
+}
+
+/* The editor uses this style when creating template guides to designate a
style annotation.
+ You probably won't want to use it anywhere else in the guide. */
+span.template {
+ color: #FF00FF;
+}
+
+a.toc-node {
+ font-size:11px;
+ color:000000;
+ margin-left: 0px;
+ margin-top: 0px;
+ margin-bottom: 0px;
+ white-space: nowrap;
+ font-family: Tahoma;
+ background-color:#FFFFFF;
+ text-decoration:none;
+}
+
+/* The userinput style renders text monospace.Use this style to highlight text
that a user
+ types into a text field. */
+span.userinput {
+ font: 100% Courier New Courier mono;
+ font-family: "Courier New", monospace;
+}
+
+/* Standard HTML tags. */
+ul,
+ol {
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ list-style-position: outside;
+ list-style-image: none;
+ margin-top: 0em;
+ margin-bottom: 0em;
+}
+
+/* Standard HTML tag. */
+ol {
+ list-style-type: 1;
+ margin-left: 2em;
+}
+
+/* Standard HTML tag. */
+ul {
+ list-style-type: disc;
+ margin-left: 1.5em;
+}
+
+/* Standard HTML tag. */
+li {
+ margin-top: 1.3em;
+ margin-bottom: 0em;
+}
+
+a:link {
+ color: #3366CC;
+}
+a:hover {
+ text-decoration: underline;
+}
+
+a:active {
+ text-decoration: underline;
+}
+
+a:visited {
+ color: #803380;
+}
+
+a {
+ text-decoration: none none none;
+}
+
+div.footer {
+}
+
+.buttonclass
+{
+ font-size:10px;
+ height:20px;
+}
+
+.formclass
+{
+ font-size:10px;
+ height:18px;
+}
+
+/* These styles are used by the Workshop search results page */
+
+.search-node {
+ font-size:10px;
+ color:000000;
+}
+
+a.search-node {
+ font-size:10px;
+ color:000000;
+}.tutorial-task {
+ background-color: #DDFFDD;
+ border: 1px solid #999999;
+ clip: rect(auto auto auto auto);
+ padding-bottom: 15px;
+ padding-left: 35px;
+
+
+
+
+
+
+
+
+
+
+
+}
Added:
incubator/beehive/trunk/netui/docs/guide/guide/navGuidetoBuildingPageFlows.html
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/docs/guide/guide/navGuidetoBuildingPageFlows.html
Thu Aug 19 12:54:31 2004
@@ -0,0 +1,90 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+<head>
+<title>Guide to Building Page Flows</title>
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<!--(Links)=========================================================-->
+<link href="../beehive.css" rel="stylesheet" type="text/css"></head>
+<!--(Body)==========================================================--><body>
+<div id="topictitle">
+ <h1>Guide to Building Page Flows</h1>
+</div>
+<div id="topictext">
+ <p>WebLogic Workshop provides you with the tools to develop web applications
+ using JavaServer Pages (JSPs) and Page Flows, separating presentation,
business
+ logic, and navigational control to manage complexity. The topics in this
section
+ discuss these concepts and provide detailed information on how to use
WebLogic
+ Workshop to develop web applications based on page flows and JSP pages.</p>
+ <h2>Topics Included in This Section</h2>
+ <p class="navtitle"><a href="conIntroductionPageFlows.html">Introduction to
+ Building Web Application with Page Flows</a></p>
+ <p class="navdesc">Introduces the page flow features in WebLogic Workshop.
Walks
+ you through a simple example.</p>
+ <p class="navtitle"><a href="conAdvantagesPageFlows.html">Advantages of
Using
+ Page Flows</a></p>
+ <p class="navdesc">Outlines the advantages of page flow features, especially
+ in comparison to using "pure Struts."</p>
+ <p class="navtitle"><a href="conMVCDesignPattern.html">Using Form Beans to
Encapsulate
+ Data</a></p>
+ <p class="navdesc">Introduces data binding and describes how forms beans are
+ used to separate data from presentation.</p>
+ <p class="navtitle"><a href="conReqScopedVsPageScopedBean.html">Form Bean
Scopings</a></p>
+ <p class="navdesc">Explains the different scopings available for Form
Beans.</p>
+ <p class="navtitle"><a href="conDatabindingXScript.html">Using Data Binding
+ in Page Flows</a></p>
+ <p class="navdesc">Describes the various data binding contexts that are
available
+ in WebLogic Workshop.</p>
+ <p class="navtitle"><a href="conJSPTagsForPageFlows.html">Designing User
Interfaces
+ in JSPs</a></p>
+ <p class="navdesc">Discusses the most common presentation elements that you
+ will need to design your web pages, such as buttons, labels, and
checkboxes.</p>
+ <p class="navtitle"><a href="conComplexDataSets.html">Presenting Complex
Data
+ Sets in JSPs</a></p>
+ <p class="navdesc">Describes the JSP data binding tags used to dynamically
display
+ large sets of data in a JSP.</p>
+ <p class="navtitle"><a href="conDeclaringPageInputs.html">Declaring Page
Inputs</a></p>
+ <p class="navdesc">Explains how to declare variables that will be passed
from
+ the page flow controller to the JSP page. </p>
+ <p class="navtitle"><a
href="conCallingDatabaseControlFromPageFlow.html">Calling
+ a Database Control From a Page Flow</a></p>
+ <p class="navdesc">Describes how to call a database Control from a Page
Flow.
+ </p>
+ <p class="navtitle"><a
href="conCallingAWebServiceFromAPageFlow.html">Calling
+ Web Services and Custom Java Controls From a Page Flow</a></p>
+ <p class="navdesc">Describes how to call a web service or Custom Java
Control
+ from a Page Flow.</p>
+ <p class="navtitle"><a href="conHandlingBinaryData.html">Handling Images and
+ Binary Data in Page Flows</a></p>
+ <p class="navdesc">Describes how to handle and display binary data, such as
+ image files, in Page Flows and JSP pages.</p>
+ <p class="navtitle"><a href="conUsingJavaScript.html">Using JavaScript in
Page
+ Flow and Portal Applications</a></p>
+ <p class="navdesc">Explains how to access Page Flow tags with JavaScript,
especially
+ when the Page Flow application is contained in a Portal.</p>
+ <p class="navtitle"><a href="conFlowViewBasics.html">A Detailed Page Flow
Example</a></p>
+ <p class="navdesc">Discusses how you can use WebLogic Workshop to quickly
build
+ the framework of a web application, which implements the major
navigational
+ flows and other major business logic, and can be used for early
testing.</p>
+ <p class="navtitle"><a href="conBestPractices.html">Best Practices for Page
+ Flows</a></p>
+ <p class="navdesc">Describes a number of best practices for building Page
Flows
+ and JSP pages.</p>
+ <p class="navtitle"><a href="conUpdateSP.html">Updating Libraries with
Service
+ Packs</a></p>
+ <p class="navdesc">Describes how to update Page Flow libraries after you
install
+ a new WebLogic Workshop Service Pack.</p>
+ <p class="navtitle"><a
href="conConfiguringPageFlowApplications.html">Configuring
+ Page Flow Applications</a></p>
+ <p class="navdesc">Explains how to optimize performance and avoid exhaustion
+ of server resources.</p>
+ <h3 class="navtitle">Related Topics</h3>
+ <p><a
href="../../tutorial/getting_started/webapp/tutGS_WebAppConcepts.html">Getting
+ Started Tutorial: Web Applications</a></p>
+ <p><a href="../tutorial/tutBeehivePageFlowTutorial.html">Tutorial: Page
+ Flow</a></p>
+ <p><a href="../samples/navPageFlowAndJSPSamples.html">Page Flow and JSP
Samples</a></p>
+</div>
+</body>
+</html>
Added: incubator/beehive/trunk/netui/docs/guide/index.html
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/docs/guide/index.html Thu Aug 19 12:54:31 2004
@@ -0,0 +1,39 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html>
+<head>
+<title>Beehive Netui Development Guide</title>
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<!--(Links)=========================================================-->
+<link href="beehive.css" rel="stylesheet" type="text/css">
+</head>
+<!--(Body)==========================================================-->
+<body>
+<div id="topictitle">
+ <h1>Beehive Netui Development Guide</h1>
+</div>
+<div id="topictext">
+ <p>This following topics explain how develop web applications using Page
Flow
+ technology. The topics are divided into five sections: </p>
+ <p class="navtitle"><a href="guide/navGuidetoBuildingPageFlows.html">Guide
to
+ Building Page Flows</a></p>
+ <p class="navdesc">This development guide explains the key concepts involved
+ in developing web applications using Page Flows, JavaServer Pages (JSPs),
+ and Java Controls.</p>
+ <p class="navtitle"><a href="tutorial/tutBeehivePageFlowTutorial.html">Page
+ Flow Tutorial</a></p>
+ <p class="navdesc">Gives step by step instructions for building a simple
Page
+ Flow web application.</p>
+ <p class="navtitle">How Do I?</p>
+ <p class="navdesc">These topics provide step by step instructions for
performing
+ common Page Flow development tasks.</p>
+ <p class="navtitle"><a
href="samples/navPageFlowAndJSPSamples.html">Samples</a></p>
+ <p class="navdesc">Provides Page Flow code samples.</p>
+ <p class="navtitle"><a href="reference/navPageFlowandJSPReference.html">Page
+ Flow Reference</a></p>
+ <p class="navdesc">The reference section provides details on Page Flow code
+ annotations, JSP tag syntax, and Javadoc for Page Flow implementation
classes.</p>
+ </div>
+</body>
+</html>
Added:
incubator/beehive/trunk/netui/docs/guide/reference/conRequiredParentTags.html
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/docs/guide/reference/conRequiredParentTags.html
Thu Aug 19 12:54:31 2004
@@ -0,0 +1,356 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Navigational.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>JSP Tags Hierarchy</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #2 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<!-- In the component metatag, please indicate whether this topic is for
Integration, Workshop, or Portal. -->
+<meta name="component" content="workshop">
+<!-- In the description metatag, please provide a BRIEF description of the
topic contents. -->
+<meta name="description" content>
+<!-- In the component metatag, please list keywords that will help a user
search for this topic. -->
+<meta name="keywords" content>
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" --><!-- InstanceEndEditable -->
+<link href="../../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../../core/CookieClass.js"></script>
+<script language="JavaScript"
src="../../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">JSP Tags Hierarchy</h1>
+</div>
+<div id="topictext">
+ <p>The table below shows the required parent tags of the Page Flow JSP tag
library
+ (<netui:...>, <netui-data:...>, and
<netui-template:...>).</p>
+ <h2><netui:...> Tags</h2>
+ <table width="100%" border="1" cellpadding="5">
+ <tr>
+ <td width="31%"><strong>Tag</strong></td>
+ <td width="69%"><strong>Required Parent Tag</strong></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/anchor.html"><netui:anchor></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/base.html"><netui:base></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/bindingUpdateErrors.html"><netui:bindingUpdateErrors></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/button.html"><netui:button></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/checkBox.html"><netui:checkBox></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/checkBoxGroup.html"><netui:checkBoxGroup></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/checkBoxOption.html"><netui:checkBoxOption></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/checkBoxGroup.html"><netui:checkBoxGroup></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/content.html"><netui:content></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/error.html"><netui:error></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/errors.html"><netui:errors></a></td>
+ <td>none<br> </td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/exceptions.html"><netui:exceptions></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/fileUpload.html"><netui:fileUpload></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/form.html"><netui:form></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/formatDate.html"><netui:formatDate></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/content.html"><netui:content></a>,
+ <a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/label.html"><netui:label></a>
+ </td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/formatNumber.html"><netui:formatNumber></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/content.html"><netui:content></a>,
+ <a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/label.html"><netui:label></a>
+ </td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/formatString.html"><netui:formatString></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/content.html"><netui:content></a>,
+ <a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/label.html"><netui:label></a>
+ </td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/hidden.html"><netui:hidden></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/html.html"><netui:html></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/image.html"><netui:image></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/imageAnchor.html"><netui:imageAnchor></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/imageButton.html"><netui:imageButton></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/label.html"><netui:label></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/node.html"><netui:node></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/tree.html"><netui:tree></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/parameter.html"><netui:parameter></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/anchor.html"><netui:anchor></a>,
+ <a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/form.html"><netui:form></a>
+ </td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/parameterMap.html"><netui:parameterMap></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/anchor.html"><netui:anchor></a>,
<a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/form.html"><netui:form></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/radioButtonGroup.html"><netui:radioButtonGroup></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/radioButtonOption.html"><netui:radioButtonOption></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/radioButtonGroup.html"><netui:radioButtonGroup></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/rewriteName.html"><netui:rewriteName></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/rewriteURL.html"><netui:rewriteURL></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/scriptContainer.html"><netui:scriptContainer></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/select.html"><netui:select></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/selectOption.html"><netui:selectOption></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/select.html"><netui:select></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/textArea.html"><netui:textArea></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/textBox.html"><netui:textBox></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-html-1.0/tree.html"><netui:tree></a></td>
+ <td>none</td>
+ </tr>
+ </table>
+ <a name="netui-tags-databinding"></a>
+ <h2><netui-data:...> Tags</h2>
+ <table width="100%" border="1" cellpadding="5">
+ <tr>
+ <td width="31%"><strong>Tag</strong></td>
+ <td width="69%"><strong>Required Parent Tag</strong></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/anchorColumn.html"><netui-data:anchorColumn></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/columns.html"><netui-data:columns></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/basicColumn.html"><netui-data:basicColumn></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/columns.html"><netui-data:columns></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/callControl.html"><netui-data:callControl></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/callMethod.html"><netui-data:callMethod></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/callPageFlow.html"><netui-data:callPageFlow></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/cellRepeater.html"><netui-data:cellRepeater></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/choice.html"><netui-data:choice></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeaterItem.html"><netui-data:repeaterItem></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/choiceMethod.html"><netui-data:choiceMethod></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeaterItem.html"><netui-data:repeaterItem></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/columns.html"><netui-data:columns></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/grid.html"><netui-data:grid></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/declareBundle.html"><netui-data:declareBundle></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/declareControl.html"><netui-data:declareControl></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td height="59"><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/declarePageInput.html"><netui-data:declarePageInput></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/expressionColumn.html"><netui-data:expressionColumn></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/columns.html"><netui-data:columns></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/getData.html"><netui-data:getData></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/grid.html"><netui-data:grid></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/gridStyle.html"><netui-data:gridStyle></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/grid.html"><netui-data:grid></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/imageColumn.html"><netui-data:imageColumn></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/columns.html"><netui-data:columns></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/message.html"><netui-data:message></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/messageArg.html"><netui-data:messageArg></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/message.html"><netui-data:message></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/methodParameter.html"><netui-data:methodParameter></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/callControl.html"><netui-data:callControl></a>,
+ <a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/callMethod.html"><netui-data:callMethod></a>,
+ <a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/callPageFlow.html"><netui-data:callPageFlow></a>,
+ <a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/choiceMethod.html"><netui-data:choiceMethod></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/pad.html"><netui-data:pad></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeater.html"><netui-data:repeater></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/pager.html"><netui-data:pager></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/grid.html"><netui-data:grid></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeater.html"><netui-data:repeater></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeaterFooter.html"><netui-data:repeaterFooter></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeater.html"><netui-data:repeater></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeaterHeader.html"><netui-data:repeaterHeader></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeater.html"><netui-data:repeater></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeaterItem.html"><netui-data:repeaterItem></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/repeater.html"><netui-data:repeater></a></td>
+ </tr>
+ </table>
+ <a name="netui-tags-template"></a>
+ <h2><netui-template:...> Tags</h2>
+ <table width="100%" border="1" cellpadding="5">
+ <tr>
+ <td width="31%" height="28"><strong>Tag</strong></td>
+ <td width="69%"><strong>Required Parent Tag</strong></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-template-1.0/attribute.html"><netui-template:attribute></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-template-1.0/includeSection.html"><netui-template:includeSection></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-template-1.0/section.html"><netui-template:section></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-template-1.0/template.html"><netui-template:template></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-template-1.0/setAttribute.html"><netui-template:setAttribute></a></td>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-template-1.0/template.html"><netui-template:template></a></td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-template-1.0/template.html"><netui-template:template></a></td>
+ <td>none</td>
+ </tr>
+ <tr>
+ <td><a
href="../../../taglib/www.bea.com/workshop/netui-tags-template-1.0/visible.html"><netui-template:visible></a></td>
+ <td>none</td>
+ </tr>
+ </table>
+ <p class="relatedtopics">Related Topics</p>
+ <p><a href="../../../reference/tags/navJspTags.html">JSP Tags
Reference</a></p>
+</div>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+
+<!-- InstanceEnd --></html>
Added: incubator/beehive/trunk/netui/docs/guide/reference/jpf/action.html
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/docs/guide/reference/jpf/action.html Thu Aug
19 12:54:31 2004
@@ -0,0 +1,270 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Tag.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>@Jpf.Action Annotation</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #2 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<!-- In the component metatag, please indicate whether this topic is for
Integration, Workshop, or Portal. -->
+<meta name="component" content="Workshop">
+<!-- In the description metatag, please provide a BRIEF description of the
topic contents. -->
+<meta name="description" content="@jpf:action Annotation reference for page
flows">
+<!-- In the component metatag, please list keywords that will help a user
search for this topic. -->
+<meta name="keywords" content="@jpf:action Annotation reference page flows">
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../core/CookieClass.js"></script>
+<script language="JavaScript" src="../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">@Jpf.Action Annotation</h1>
+</div>
+<div id="topictext">
+ <p>You can use the <span class="langinline">@Jpf.Action</span> annotation to
+ designate an action method in a page flow. Action methods in a page flow
perform
+ control logic, such as forwarding the user to a new JSP or another page
flow.
+ Optionally, you can cause an action to read and update from a <span
class="langinline">FormData</span>
+ (or <span class="langinline">ActionForm</span>) member variable; set login
+ requirements for users; or indicate that the action method will not update
+ any member data in the page flow. </p>
+ <p>For information about the method signatures of an action method, see the
+ <a href="forward.html">@jpf:forward Annotation</a>. That topic also
describes
+ the run-time behavior of overloaded actions, in the Remarks section. </p>
+ <h2>Syntax</h2>
+ <p class="syntax">@Jpf.Action</p>
+ <p class="syntaxindent">[ form = "<form name>" ]</p>
+ <p class="syntaxindent">[ login-required = "{ true | false }"</p>
+ <p class="syntaxindent">[ read-only = "{ true | false }" ]</p>
+ <p class="syntaxindent">[ roles-allowed = "<J2EE role name> [ ,
<J2EE
+ role name> ] " ] </p>
+ <h2>Attributes</h2>
+ <p class="attribute"><a name="form" id="form"></a>form</p>
+ <p class="partdesc">Optional. A Form Bean instance that will be passed to
the
+ method. The Form Bean instance that is passed to the , allowing the action
+ to read and update from a FormData (or ActionForm) member variable. <a
href="../../guide/netui/guide/conHandlingExceptions.html"></a>For
+ more information, see the <a href="#remarks">Remarks</a> section. </p>
+ <p class="attribute"><a name="login-required"
id="login-required"></a>login-required</p>
+ <p class="partdesc">Optional. A boolean that indicates whether the user must
+ be logged-in to use this action method. If set to <span
class="langinline">login-required="true"</span>
+ the action method can only be run if the user is logged in. That is, the
page
+ flow runtime checks to see if <span
class="langinline">request.getUserPrincipal()
+ == null</span>. If it is, then the exception <span
class="langinline">com.bea.wlw.netui.pageflow.NotLoggedInException</span>
+ is thrown and the code in the action method is not executed. You can catch
+ the exception in the page flow or the web project's Global.app, and from
there
+ attempt to log the user in.</p>
+ <p class="partdesc">When you create a new "Web Project" project
with
+ WebLogic Workshop, a default Global.app file is created for you in the
project's
+ /WEB-INF/src/global directory. Global.app allows you to define actions
that
+ can be invoked by any other page flow in a web application. In Global.app,
+ you can catch and handle exceptions that were not caught in your page
flow.
+ For more information, see <a
href="../../guide/netui/guide/conHandlingExceptions.html">Handling
+ Exceptions in Page Flows.</a></p>
+ <p class="attribute"><a name="read-only" id="read-only"></a>read-only</p>
+ <p class="partdesc">Optional. The default is <span
class="langinline">read-only="false"</span>.
+ Use this attribute to indicate your intention that this action
<nobr><strong>will
+ not</strong></nobr> update any member data in the page flow. In a WebLogic
+ cluster environment, this designation causes WebLogic Workshop to skip any
+ attempted failover of the pageflow after the action is run. This option
may
+ allow you to increase the performance of the page flow in cluster
environments,
+ by making it unnecessary for WebLogic Workshop to communicate portions of
+ this page flow's state data across the nodes in the cluster that pertain
to
+ the read-only actions.</p>
+ <p class="attribute"><a name="roles-allowed"
id="roles-allowed"></a>roles-allowed</p>
+ <p class="partdesc">Optional. Specifies the name of one or more security
roles
+ that are defined in the web project's <span
class="filepath">/WEB-INF/web.xml</span>
+ file. If more than one security role name is specified, use a comma to
separate
+ each name. For
+ more information on security roles, see the <a
href="../../guide/security/role-based/navRoleBasedSecurity.html">Role-Based
+ Security</a>.</p>
+ <p class="partdesc">If roles-allowed is defined, the use of this action
method
+ will be limited to logged-in users who are associated with at least one
+ of
+ the specified roles specified at this method-level, or one of the security
+ roles specified on the class-level annotation <span
class="langinline">@jpf:controller</span> (if used).
+ That
+ is,
+ security roles that are specified at the method level with <span
class="langinline">@Jpf.Action</span>
+ <strong>add</strong> to any allowable roles defined at the class level
with
+ <span class="langinline">@jpf:controller.</span> If the user is not
logged-in,
+ a <span
class="langinline">com.bea.wlw.netui.pageflow.NotLoggedInException</span>
+ will be thrown. If the user is not in an appropriate role, a <span
class="langinline">com.bea.wlw.netui.pageflow.UnfulfilledRolesException</span>
+ will be thrown. For more information, see <a
href="../../guide/netui/guide/conHandlingExceptions.html">Handling
+ Exceptions in Page Flows.</a></p>
+ <p class="attribute"><a name="validation-error-page"
id="validation-error-page"></a>validation-error-page
+ (Deprecated) </p>
+ <p class="partdesc"><h>This attribute on @Jpf.Action has been deprecated, as
+ of WebLogic Workshop 8.1 Service Pack 2. Instead you can use the <a
href="validation-error-forward.html">@jpf:validation-error-forward
+ Annotation</a>. </p>
+ <h2><a name="remarks"></a>Remarks</h2>
+ <p>The following rules apply to this annotation's use:</p>
+ <ul style="list-style: disc;" type="disc">
+ <li>
+ <p>Without an <span class="langinline">@Jpf.Action</span> annotation, a
+ method will not be recognized by the page flow runtime as an action
method.</p>
+ </li>
+ <li>You cannot use the <span class="langinline">jpf:action</span>
annotation
+ at the page flow class level.</li>
+ <li>When you drag an action icon onto the palette in a page flow's Flow
View,
+ the <span class="langinline">@Jpf.Action</span> annotation is
automatically
+ added for you in the *.jpf source code. Initially this looks like the
following
+ code fragment, where we provided the method name "shopping"
for
+ the action:</li>
+ <blockquote>
+ <pre><font face="Courier New, Courier, mono">/**
+ * @Jpf.Action
+ */
+ public Forward shopping()
+ {
+ return new Forward( "success" );
+ }</font></pre>
+ <p>In Flow View, you can then draw a forward arrow to a destination,
such
+ as a JSP or a page flow. This step will add a <span
class="langinline">@jpf:forward</span>
+ annotation in your *.jpf file. You can also change the Forward
object's
+ return name from "success" to another name. However, if you
+ do, remember to also change the name attribute on the corresponding
@jpf:forward
+ annotation for the action method. For more information, see <a
href="forward.html">@jpf:forward
+ Annotation</a>.</p>
+ </blockquote>
+ <li>
+ <p>You can cause an action to read and update from a <span
class="langinline">FormData</span>
+ (or <span class="langinline">ActionForm</span>) member variable, by
using
+ the <span class="langinline">@Jpf.Action form="<form
name>"</span>
+ annotation. For example, in the page flow class:</p>
+ <pre>
+ /**
+ * @Jpf.Action form="_pageFlowForm"
+ */
+ protected Forward doit( MyForm myForm )
+ {
+ // _pageFlowForm is a member variable
+ // Note that myForm == _pageFlowForm
+
+ String name = _pageFlowForm.getFullName();
+ ...
+ }</pre>
+ For a related advanced discussion about the behavior seen when you
forward
+ directly from one action to another, and the effects of form scoping,
see
+ the Remarks section of the topic <a href="forward.html">@jpf:forward
Annotation</a>
+ and the help topic <a
href="../../guide/netui/guide/conReqScopedVsPageScopedBean.html">Page
+ Flow Scopings</a>.</li>
+ <li>
+ <p>If you enable <span
class="langinline">login-required="true"</span>
+ for an action method, be sure to handle the exception that can occur
if
+ a user who is not logged-in raises the action on a JSP page in the
page
+ flow. You can add the exception code in the page flow class. For
example:</p>
+ <pre>
+ import javax.security.auth.login.FailedLoginException;
+
+ ...
+
+ /**
+ * @Jpf.Action
+ * @jpf:forward name="success" path="LoginSuccess.jsp"
+ * @jpf:catch type="FailedLoginException"
method="failedLogin"
+ */
+ protected Forward loginSubmit( LoginForm loginForm )
+ throws Exception
+ {
+ login( loginForm.getUsername(), loginForm.getPassword() );
+ userName = loginForm.getUsername();
+ return new Forward( "success", loginForm );
+ }
+
+ /**
+ * @jpf:exception-handler
+ * @jpf:forward name="loginPage" path="Login.jsp"
+ */
+ protected Forward failedLogin( FailedLoginException ex, String actionName,
+ String message, FormData form )
+ {
+ return new Forward( "loginPage" );
+ }</pre>
+ <p>You can also use the Global.app file, which the Page Flow Wizard
provides
+ in your web project's <span
class="langinline">WEB-INF/src/global</span>
+ folder. In your page flow, you may notice the line: </p>
+ <p class="codeblock">// protected global.Global
globalApp;</p>
+ <p>It is <strong>not</strong> required that you uncomment this line in
order
+ to have access to methods in Global.app. However, if you do uncomment
+ it, this <span class="langinline">globalApp</span> declaration will
give
+ your page flow easy access to public methods and variables in
Global.app.
+ </p>
+ <p>In the Global.app file, check that you have code such as:</p>
+ <pre class="codeblock">
+/**
+ * @jpf:catch type="Exception" method="handleException"
+ */
+ public class Global extends GlobalApp
+ {
+
+ /**
+ * General handler for uncaught exceptions.
+ *
+ * @jpf:exception-handler
+ * @jpf:forward name="errorPage" path="/error.jsp"
+ */
+ protected Forward handleException( Exception ex, String actionName,
+ String message, FormData form )
+ {
+ System.err.print( "[" +
getRequest().getContextPath() + "] " );
+ System.err.println( "Unhandled exception
caught in Global.app:" );
+ ex.printStackTrace();
+ return new Forward( "errorPage" );
+ }
+
+ ...
+
+ }</pre>
+ </li>
+ <li>The <span class="langinline">roles-allowed</span> attribute lets you
limit
+ access to a page flow action method to users who are associated with the
+ J2EE role. This, in turn, limits access from the current context to the
+ web resource that would be loaded as a result of the action. </li>
+ <p>Note that currently using the following IDE menu option defines a new
security
+ role in the <strong>application's</strong> <span
class="langinline">/META-INF/application.xml</span>
+ file:</p>
+ <p>Tools > Security > Create New Security Role...</p>
+ <p>However, <span class="langinline">/META-INF/application.xml </span>is
not
+ the XML file that is used for the page flow roles-allowed checking.
Enter
+ any J2EE roles in the web project's web.xml file, and associate
usernames
+ with the role name in the web project's weblogic.xml file.</p>
+ </ul>
+ <p class="relatedtopics">Related Topics</p>
+ <p><a href="catch.html">@jpf:catch Annotation</a></p>
+ <p><a href="controller.html">@jpf:controller Annotation</a></p>
+ <p><a href="exception-handler.html">@jpf:exception-handler Annotation</a></p>
+ <p><a href="forward.html">@jpf:forward Annotation</a></p>
+ <p><a href="message-resources.html">@jpf:message-resources Annotation</a></p>
+ <p><a href="validation-error-forward.html">@jpf:validation-error-forward
Annotation</a></p>
+ <p><a href="../../guide/netui/guide/conReqScopedVsPageScopedBean.html">Form
+ Bean Scopings</a></p>
+ <h3>Samples</h3>
+ <p><a href="../../guide/netui/samples/samDataFlow.html">Data Flow
Sample</a></p>
+</div>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+<!-- InstanceEnd --></html>
Added: incubator/beehive/trunk/netui/docs/guide/reference/jpf/catch.html
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/docs/guide/reference/jpf/catch.html Thu Aug
19 12:54:31 2004
@@ -0,0 +1,197 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Tag.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>@Jpf.Catch Annotation</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #2 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<!-- In the component metatag, please indicate whether this topic is for
Integration, Workshop, or Portal. -->
+<meta name="component" content="Workshop">
+<!-- In the description metatag, please provide a BRIEF description of the
topic contents. -->
+<meta name="description" content="@jpf:catch Annotation reference for page
flows">
+<!-- In the component metatag, please list keywords that will help a user
search for this topic. -->
+<meta name="keywords" content="@jpf:catch Annotation reference page flows
exception">
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../core/CookieClass.js"></script>
+<script language="JavaScript" src="../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">@Jpf.Catch Annotation</h1>
+</div>
+<div id="topictext">
+ <p>You can use the <span class="langinline">@Jpf.Catch</span> annotation to
+ catch exceptions that occur in the page flow and possibly route them to error
+ handlers.</p>
+ <p>For more information about using this annotation, see <a
href="../../guide/netui/guide/conHandlingExceptions.html">Handling
+ Exceptions in Page Flows.</a></p>
+ <h2>Syntax</h2>
+ <p class="syntax">@Jpf.Catch</p>
+ <p class="syntaxindent">type = "<exception type>"</p>
+ <p class="syntaxindent">{ path = "<path>" |
method
+ = "<method name>" }</p>
+ <p class="syntaxindent">[ message = "<message String>" ]</p>
+ <p class="syntaxindent">[ message-key = "<key value>" ]</p>
+ <h2>Attributes</h2>
+ <p class="attribute"><a name="type"></a>type</p>
+ <p class="partdesc">Required. Specifies the fully qualified Java type of the
+ exceptions that should be caught.</p>
+ <p class="attribute"><a name="path"></a>path</p>
+ <p class="partdesc">Either this attribute or the method attribute is
required.
+ Specifies the resource to which the runtime should forward when it catches an
+ exception of the type specified in the type attribute. The path can map to
one
+ of the following:</p>
+</div>
+<ul>
+ <li>
+ <div class="partdesc"> A JSP or another page flow in this web
application.</div>
+ </li>
+ <li>
+ <div class="partdesc"> An action, such as <span
class="langinline">/help/helpPage.do</span>.
+ </div>
+ </li>
+</ul>
+<div>
+ <p class="attribute"><a name="method"></a>method</p>
+ <p class="partdesc">Either this attribute or the path attribute is required.
+ Specifies the name of an exception handler method that has been designated
+ with a <span class="langinline">@jpf:exception-handler</span> annotation.
+ That method will be invoked when the exception of the type specified in
the
+ type attribute is caught.</p>
+ <p class="attribute"><a name="message"></a>message</p>
+ <p class="partdesc">Optional. Specify a string that provides useful
information
+ about the exception. This message will be passed to the
exception-handler
+ method, if the method attribute is used.</p>
+ <p class="attribute"><a name="message-key"
id="message-key"></a>message-key</p>
+ <p class="partdesc">Optional. Specify a key that is used to select a message
+ from a message map. Typically this key is used to enable
internationalization
+ of messages, which are passed to the exception-handler method, and can
also
+ be displayed using the <a
href="../../taglib/www.bea.com/workshop/netui-tags-html-1.0/errors.html"><netui:errors/>
+ tag</a>. The key refers to a message resource that is defined by the <a
href="message-resources.html">@jpf:message-resources
+ Annotation.</a></p>
+ <h2>Remarks</h2>
+ <p>The following rules apply to this annotation's use:</p>
+ <ul style="list-style: disc;" type="disc">
+ <li>
+ <p>The <span class="langinline">@Jpf.Catch</span> annotation may be used
+ on action methods and the page flow class, and in the
/WEB-INF/src/global/Global.app
+ file.</p>
+ </li>
+ <li>
+ <p>If the <span class="langinline">type</span> specified is a base type
+ (for example, <span class="langinline">Exception</span> is a base type
+ of <span class="langinline">NullPointerException</span>), this
annotation
+ will apply to any subtype that is thrown, unless there is a <span
class="langinline">@Jpf.Catch</span>
+ that applies more specifically to the subtype. </p>
+
+ <p>For example, given the following annotations, an <span
class="langinline">IllegalStateException</span>
+ will be routed to "error1.jsp", while a <span
class="langinline">NullPointerException</span>
+ will be routed to "error2.jsp". (Both <span
class="langinline">IllegalStateException</span>
+ and <span class="langinline">NullPointerException</span> are subtypes
+ of <span class="langinline">Exception</span>). </p>
+ <pre>
+ * @Jpf.Catch type="Exception" path="error1.jsp"
+ * @Jpf.Catch type="NullPointerException"
path="error2.jsp"
+ </pre>
+ </li>
+ </ul>
+</div>
+<ul>
+ <li>
+ <div>The <span class="langinline">path</span> value can be relative to the
+ page flow within the local file hierarchy, or relative to the root of
the
+ web application.</div>
+ </li>
+</ul>
+<div>
+ <ul style="list-style: disc;" type="disc">
+ <li>
+ <p>In a page flow class, you can use the <span
class="langinline">@Jpf.Catch</span>
+ annotation with, or without, the <span
class="langinline">@jpf:exception-handler</span>
+ annotation. If you use <span class="langinline">@Jpf.Catch</span>
without
+ <span class="langinline">@jpf:exception-handler</span> in the page
flow,
+ you can only catch errors and take action such as forwarding to a
generic
+ errors.jsp page. For example:</p>
+ <pre>
+/**
+ * @jpf:action
+ * @jpf:forward name="readyForNextCandidate"
path="name.jsp"
+ * @Jpf.Catch type="com.acme.WorkflowException"
path="errors.jsp"
+*/
+public Forward confirmationPage_hire(HireForm form)
+throws Exception
+{
+ hiringService.hire(firstName, lastName, title, startDate);
+ .
+ .
+ .</pre>
+ </li>
+ </ul>
+</div>
+<ul>
+ <li>
+ <div> Note that <span class="langinline">@Jpf.Catch</span> annotations
<strong>cannot</strong>
+ be used to catch exceptions on exception-handler methods. The following
+ code is invalid and results in a compilation error: </div>
+ </li>
+</ul>
+<blockquote>
+ <div> </div>
+ <div>
+ <pre>
+ /**
+ * Invalid code:
+ * @jpf:exception-handler
+ * @Jpf.Catch type="Exception" path="foo.jsp"
+ */
+ public Forward bad( Exception e, String msg, String msgKey, ActionForm
form )
+</pre>
+ </div>
+</blockquote>
+<div>
+ <p>For information about using the <span
class="langinline">@Jpf.Catch</span>
+ and <span class="langinline">@jpf:exception-handler</span> annotations
together,
+ to both catch and handle exceptions, see <a
href="exception-handler.html">@jpf:exception-handler
+ annotation</a>. Also see <a
href="../../guide/netui/guide/conHandlingExceptions.html">Handling
+ Exceptions in Page Flows.</a></p>
+ <p class="relatedtopics">Related Topics</p>
+ <p><a href="exception-handler.html">@jpf:exception-handler Annotation</a></p>
+ <p><a href="../../guide/netui/guide/conHandlingExceptions.html">Handling
Exceptions
+ in Page Flows</a></p>
+ <p><a href="action.html">@jpf:action Annotation</a></p>
+ <p><a href="controller.html">@jpf:controller Annotation</a></p>
+ <p><a href="forward.html">@jpf:forward Annotation</a></p>
+ <p><a href="message-resources.html">@jpf:message-resources Annotation</a></p>
+ <p><a href="validation-error-forward.html">@jpf:validation-error-forward
Annotation</a></p>
+ <p><a href="../../guide/netui/guide/conGettingStartedPageFlows.html">Getting
+ Started with Page Flows</a></p>
+ <p> </p>
+</div>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+<!-- InstanceEnd --></html>
Added: incubator/beehive/trunk/netui/docs/guide/reference/jpf/controller.html
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/docs/guide/reference/jpf/controller.html
Thu Aug 19 12:54:31 2004
@@ -0,0 +1,176 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Tag.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>@Jpf.Controller Annotation</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #2 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<!-- In the component metatag, please indicate whether this topic is for
Integration, Workshop, or Portal. -->
+<meta name="component" content="Workshop">
+<!-- In the description metatag, please provide a BRIEF description of the
topic contents. -->
+<meta name="description" content="@jpf:controller annotation reference">
+<!-- In the component metatag, please list keywords that will help a user
search for this topic. -->
+<meta name="keywords" content="JPF controller reference nested login required
roles allowed struts merge">
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../core/CookieClass.js"></script>
+<script language="JavaScript" src="../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">@Jpf.Controller Annotation</h1>
+</div>
+<div id="topictext">
+ <p>You can use the <span class="langinline">@Jpf.Controller</span> annotation
+ at the class-level only to designate the following characteristics of the
page
+ flow:
+ <ul style="list-style: disc;" type="disc">
+ <li>Is this page flow "nested," meaning, can control return to
the
+ calling page flow after this page flow completes its work?
+ <li>Is the use of this page flow limited to logged-in users?
+ <li>Is the use of this page flow limited to logged-in users who are
+ associated with a J2EE role, as defined in the application's web.xml
file?
+ <li>Will a Struts configuration file be merged with the page flow's
+ configuration file?
+ </ul>
+</div>
+<div id="topictext">
+ <p class="notepara"><strong>Note:</strong> At the class level, you have the
+ option of also using a <a href="catch.html">@jpf:catch annotation</a>, a
global
+ <a href="forward.html">@jpf:forward annotation</a>, or both. These
annotations
+ may be used at the class level, with or without a @Jpf.Controller
annotation.</p>
+</div>
+<div>
+ <h2>Syntax</h2>
+ <p class="syntax">@Jpf.Controller</p>
+ <p class="syntaxindent">[ nested = "true | false" ]</p>
+ <p class="syntaxindent">[ login-required = "true | false" ]</p>
+ <p class="syntaxindent">[ roles-allowed = "<J2EE-role-name> [ ,
+ <J2EE-role-name> ] " ]</p>
+ <p class="syntaxindent">[ struts-merge = "<Struts-file>.xml"
]</p>
+ <h2>Attributes</h2>
+ <p class="attribute"><a name="nested"></a>nested</p>
+ <p class="partdesc">Optional. A boolean that indicates whether this is a
+ nested page flow that can be called from another page flow. If the <span
class="langinline">@Jpf.Controller</span>
+ annotation is used, but the <span class="langinline">nested </span>attribute
+ is not, the default is <span
class="langinline">nested="false"</span>.</p>
+ <p class="attribute"><a name="login-required"
id="login-required"></a>login-required</p>
+ <p class="partdesc">Optional. A boolean that indicates whether the user must
+ be logged-in to use this page flow. If the <span
class="langinline">@Jpf.Controller</span>
+ annotation is used, but both the <span
class="langinline">login-required</span>
+ and <span class="langinline">roles-allowed</span> attributes are not used,
+ the default is <span
class="langinline">login-required="false"</span>.
+ However, if only the <span class="langinline">roles-allowed</span>
attribute
+ is used, then <span
class="langinline">login-required="true"</span>
+ is implied.</p>
+ <p class="partdesc">The JPF compiler will issue an error if you use both the
<span class="langinline">roles-allowed</span>
+ attribute and the <span class="langinline">login-required</span>
attribute.</p>
+ <p class="attribute"><a name="roles-allowed"
id="roles-allowed"></a>roles-allowed</p>
+ <p class="partdesc">Optional. Specifies the name of one or more J2EE roles
+ that are defined in the web project's <span
class="filepath">/WEB-INF/web.xml</span>
+ file. If more than one J2EE role name is specified, use a comma to separate
+ each name. If defined, the use of all action methods in this page flow is
+ limited to users who are associated with the specified role(s). Note that
+ users who are granted the roles specified may access all methods in the page
+ flow, regardless of any further role restrictions applied to individual
+ methods by the <span class="langinline">@jpf:action</span> annotation.</p>
+ <p class="partdesc">You can, optionally, also use the <span
class="langinline">@jpf:action</span>
+ annotation to <strong>add</strong> to the authorized role(s) that are
declared
+ at the class-level by <span class="langinline">@Jpf.Controller.</span> The
+ method-level <span class="langinline">@jpf:action</span> annotation also has
a
+ <span class="langinline">roles-allowed</span> attribute. For more
information,
+ see <a href="Action.html">@jpf:action annotation.</a></p>
+ <p class="attribute"><a name="struts-merge"
id="struts-merge"></a>struts-merge</p>
+ <p class="partdesc">Optional. Specifies a standard Struts configuration XML
+ file that you want the WebLogic Workshop compiler to merge into the generated
+ configuration file for the page flow: <span
class="langinline">/WEB-INF/jpf-struts-<pageflow-name>.xml</span>.
+ The Struts XML file, by convention, should reside in the web project's
+ /WEB-INF directory. After the compilation step that creates the merged <span
class="langinline">/WEB-INF/jpf-struts-<pageflow-name>.xml</span>,
+ functionality that was enabled by the Struts configuration is available to
the
+ page flow controller.</p>
+ <p class="partdesc">The purpose of the "Struts Merge" feature is to
+ enable you to override page flow defaults, or to specify settings for the
page
+ flow that are not provided by page flow annotations or their attributes. The
+ Struts merge files should typically be small and only modify the page flow
and
+ its actions and form beans. You can also add Struts tags that are not
+ supported by page flows, such as the <span
class="langinline"><plug-in></span>
+ tag. While you could, for example, add action mappings in the Struts merge
+ file, BEA does not recommend this practice. Struts action mappings should be
+ declared in the page flow's .jpf file with <span
class="langinline">@jpf</span>
+ annotations, and then (if necessary) modified with the Struts merge file. For
+ details, see <a href="../../guide/netui/guide/conStrutsMerge.html">Merging
+ Struts Artifacts Into Page Flows.</a></p>
+ <h2>Remarks</h2>
+ <p>The following rules apply to this annotation's use:</p>
+ <ul style="list-style: disc;" type="disc">
+ <li>
+ <p>The <span class="langinline">@Jpf.Controller</span> annotation is
optional
+ and can be used only to qualify the page flow class. This annotation
cannot
+ be used on a method within the page flow class.</p>
+ </li>
+ <li>A nested page flow is useful when you want to perform some processing
+ and then return (with or without the results) to the calling page flow.
+ For example, a vacation scheduling page flow could call a nested page
flow
+ that lists the company holidays. After the companyHolidays page flow is
+ used, a method that exists in the nested page flow could return the user
+ to the calling vacationScheduling page flow.</li>
+ <li>
+ <p>The <span class="langinline">roles-allowed</span> attribute on this
@Jpf.Controller
+ annotation lets you limit access to this page flow's action methods to
+ users who are associated with the security role. This, in turn, limits
+ access from the current context to the web resource that would be
loaded
+ as a result of the action. Again, you can add to the authorized
+ role(s) declared at the class-level with @Jpf.Controller by using the
+ <span class="langinline">roles-allowed</span> attribute on a
method-level
+ <a href="action.html">@jpf:action annotation</a>.</p>
+ </li>
+ <li>
+ <p>Note that the following IDE menu option defines a new security role in
+ the <strong>application's</strong> <span
class="langinline">/META-INF/application.xml</span>
+ file:</p>
+ <p>Tools > Security > Create New Security Role...</p>
+ <p>However, <span class="langinline">/META-INF/application.xml </span>is
+ not the XML file that is used for the page flow scoped roles-allowed
checking.
+ Enter any security roles in the web project's web.xml file, and associate
+ principals with the role name in the web project's weblogic.xml file. For
+ more information, see the <a
href="../../guide/security/role-based/navRoleBasedSecurity.html">Role-Based
+ Security</a>.</p>
+ </li>
+ </ul>
+ <p class="relatedtopics">Related Topics</p>
+ <p><a href="action.html">@jpf:action Annotation</a></p>
+ <p><a href="catch.html">@jpf:catch Annotation</a></p>
+ <p><a href="forward.html">@jpf:forward Annotation</a></p>
+ <p><a href="exception-handler.html">@jpf:exception-handler Annotation</a></p>
+ <p><a href="message-resources.html">@jpf:message-resources Annotation</a></p>
+ <p><a href="validation-error-forward.html">@jpf:validation-error-forward
Annotation</a></p>
+ <p><a href="../../guide/netui/guide/conGettingStartedPageFlows.html">Getting
+ Started with Page Flows</a></p>
+</div>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+<!-- InstanceEnd --></html>
Added:
incubator/beehive/trunk/netui/docs/guide/reference/jpf/exception-handler.html
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/docs/guide/reference/jpf/exception-handler.html
Thu Aug 19 12:54:31 2004
@@ -0,0 +1,156 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Tag.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>@Jpf.ExceptionHandler Annotation</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #2 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<meta name="component" content="Workshop">
+<meta name="description" content="@jpf:ExceptionHandler Annotation reference
for page flows">
+<meta name="keywords" content="@jpf:ExceptionHandler annotation reference
exception handling page flows">
+<meta name="date last modified" content="05/06/03">
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../core/CookieClass.js"></script>
+<script language="JavaScript" src="../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">@Jpf.ExceptionHandler Annotation</h1>
+</div>
+<div id="topictext">
+ <p>You can use the <span class="langinline">@Jpf.ExceptionHandler</span>
annotation
+ to mark an error handler method that is specified by a <span
class="langinline">@jpf:catch
+ </span>annotation in a page flow. Without a <span
class="langinline">@Jpf.ExceptionHandler</span>
+ annotation, the page flow runtime will not route exceptions to an error
handler
+ method.</p>
+ <p>For more information about using this annotation, see <a
href="../../guide/netui/guide/conHandlingExceptions.html">Handling
+ Exceptions in Page Flows.</a></p>
+ <h2>Syntax</h2>
+ <p class="syntax">@Jpf.ExceptionHandler</p>
+ <p class="syntaxindent"> [ read-only = "{ true | false }" ]</p>
+ <p class="syntaxindent"> </p>
+ <h2>Attributes</h2>
+ <p class="attribute"><a name="read-only" id="read-only"></a>read-only</p>
+ <p class="partdesc">Optional. The default is <span
class="langinline">read-only="false"</span>.
+ Use this attribute to indicate your intention that this method
<nobr><strong>will
+ not</strong></nobr> update any member data in the page flow. In a WebLogic
+ cluster environment, this designation causes WebLogic Workshop to skip any
+ attempted failover of the pageflow after the action is run. This option
may
+ allow you to increase the performance of the page flow in cluster
environments,
+ by making it unnecessary for WebLogic Workshop to communicate portions of
+ this page flow's state data across the nodes in the cluster that pertain
to
+ the read-only actions.</p>
+</div>
+<div>
+ <h2>Remarks</h2>
+ <p>The following rules apply to this annotation's use:</p>
+ <ul style="list-style: disc;" type="disc">
+ <li>The <span class="langinline">@Jpf.ExceptionHandler</span> annotation
+ must be used with a <span class="langinline">@jpf:catch</span>
annotation.
+ For example:
+ <pre>
+ package login2;
+
+ import com.bea.wlw.netui.pageflow.PageFlowController;
+ import com.bea.wlw.netui.pageflow.Forward;
+ import com.bea.wlw.netui.pageflow.FormData;
+ import javax.servlet.http.HttpServletRequest;
+<strong> import javax.security.auth.login.FailedLoginException;</strong>
+
+ /**
+ * @jpf:controller nested="true"
+ */
+ public class Login extends PageFlowController
+ {
+ public String userName;
+ /**
+ * @jpf:action
+ * @jpf:forward name="success" path="LoginSuccess.jsp"
+<strong> * @jpf:catch type="FailedLoginException"
method="failedLogin"</strong>
+ */
+ protected Forward loginSubmit( LoginForm loginForm )
+ throws Exception
+ {
+ login( loginForm.getUsername(), loginForm.getPassword() );
+ userName = loginForm.getUsername();
+ return new Forward( "success", loginForm );
+ }
+
+ /**
+<strong> * @Jpf.ExceptionHandler</strong>
+ * @jpf:forward name="loginPage" path="Login.jsp"
+ */
+<strong> protected Forward failedLogin( FailedLoginException ex, String
actionName,
+ String message, FormData form )</strong>
+ {
+ LoginForm loginForm = ( LoginForm ) form;
+ loginForm.setMessage( "Login incorrect. Do you need to create an
account?" );
+ return new Forward( "loginPage" );
+ }
+ .
+ .
+ .</pre>
+ </li>
+ </ul>
+</div>
+<ul>
+ <li>
+ <div> Note that <span class="langinline">@jpf:catch</span> annotations
cannot
+ be used to catch exceptions on ExceptionHandler methods. The following
+ code is invalid and results in a compilation error: </div>
+ </li>
+</ul>
+<blockquote>
+ <div>
+ <pre>
+ /**
+ * Invalid code:
+ * @Jpf.ExceptionHandler
+ * @jpf:catch type="Exception" path="foo.jsp"
+ */
+ public Forward bad( Exception e, String msg, String msgKey, ActionForm
form )
+ </pre>
+ </div>
+</blockquote>
+<div>
+ <p class="relatedtopics">Related Topics</p>
+ <p><a href="catch.html">@jpf:catch Annotation</a></p>
+ <p><a href="../../guide/netui/guide/conHandlingExceptions.html">Handling
+ Exceptions in Page Flows</a></p>
+ <p><a href="action.html">@jpf:action Annotation</a></p>
+ <p><a href="controller.html">@jpf:controller Annotation</a></p>
+ <p><a href="forward.html">@jpf:forward Annotation</a></p>
+ <p><a href="message-resources.html">@jpf:message-resources Annotation</a></p>
+ <p><a href="validation-error-forward.html">@jpf:validation-error-forward
Annotation</a></p>
+ <p><a href="../../guide/netui/guide/conGettingStartedPageFlows.html">Getting
+ Started with Page Flows</a></p>
+ <p> </p>
+</div>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+<!-- InstanceEnd --></html>
Added: incubator/beehive/trunk/netui/docs/guide/reference/jpf/forward.html
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/docs/guide/reference/jpf/forward.html Thu Aug
19 12:54:31 2004
@@ -0,0 +1,370 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Tag.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>@Jpf.Forward Annotation</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #2 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<meta name="component" content="Workshop">
+<meta name="description" content="@jpf:forward annotation reference">
+<meta name="keywords" content="@jpf:forward forward annotation reference
return-action return-form redirect return-to overload overloaded action">
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../core/CookieClass.js"></script>
+<script language="JavaScript" src="../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">@Jpf.Forward Annotation</h1>
+</div>
+<div id="topictext">
+ <p>You can use the <span class="langinline">@Jpf.Forward</span> annotation
to
+ describe the location the page flow runtime should go to next. The
location
+ may be a JSP, a page flow, a specific page flow action, or an external
URL.
+ This annotation may be used on action methods and the page flow class, and
+ in the /WEB-INF/src/global/Global.app. Using the @Jpf.Forward at the class
+ level results in a global forward that can be used by any action method in
+ the page flow class.</p>
+ <p>The Remarks section includes a discussion about what happens if you use
<a href="#overloaded">overloaded
+ actions</a>. Also, the Remarks section contains a description about the
behavior
+ seen when you forward directly from one action to another, and the effects
+ of <a href="#scoping">form scoping</a>. </p>
+</div>
+<div>
+ <h2>Syntax</h2>
+ <p class="syntax">@Jpf.Forward</p>
+ <p class="syntaxindent">name = "<forward name>"</p>
+ <p class="syntaxindent">{ path = "<path>" |
return-action
+ = "<action name>" | return-to =
{"currentPage"
+ | "previousPage" | "previousAction"} }</p>
+ <p class="syntaxindent">{ return-form = "<form name>" |
return-form-type
+ = "<form type>" }</p>
+ <p class="syntaxindent">[ redirect = { "true" | "false"
+ } ]</p>
+ <h2>Attributes</h2>
+ <div id="topictext">
+ <p class="attribute"><a name="name"></a>name</p>
+ <p class="partdesc">Required. Specifies the name of the forward, which
causes
+ the navigation to occur. Note that <span
class="langinline">@Jpf.Forward</span>
+ names on exception-handlers can conflict with <span
class="langinline">@Jpf.Forward</span>
+ names on actions and at the class level. The <span
class="langinline">@Jpf.Forward</span>
+ names that you specify must be unique in the page flow.</p>
+ <p><strong>You must specify only one of the following: the <span
class="langinline">path</span>,
+ <span class="langinline">return-to</span>, or the <span
class="langinline">return-action</span>
+ attributes.</strong></p>
+ <p class="attribute"><a name="path"></a>path</p>
+ <p class="partdesc"> The <span class="langinline">path</span> attribute is
+ a string that maps to one of the following entities:</p>
+ </div>
+ <ul>
+ <li>
+ <div class="partdesc"> A JSP or another page flow in this web
application
+ </div>
+ </li>
+ <li>
+ <div class="partdesc"> An action within a page flow in this web
application
+ </div>
+ </li>
+ <li>
+ <div class="partdesc"> A resource somewhere on the web, in this web
application
+ or a different web application. </div>
+ </li>
+ </ul>
+</div>
+<blockquote>
+ <p>If the path begins with a protocol such as "http:" the page
flow
+ runtime will look outside of this web application for the resource, and it
+ will automatically cause a redirect (rather than a server forward) to the
+ resource. If the path begins with a forward slash, "/", the
runtime
+ will start at the web application's root directory to locate the resource.
+ If the path omits the forward slash, "/", the reference is
relative
+ to the page flow's directory.</p>
+</blockquote>
+<p class="attribute"><a name="return-to" id="return-to"></a>return-to</p>
+<p class="partdesc">The return-to attribute always applies to the current page
+ flow, whether it is a nested page flow or the main page flow. To return to
an
+ action in the “nesting” page flow use the return-action
attribute.</p>
+<p class="partdesc">The value for the <span
class="langinline">return-to</span>
+ attribute must be a keyword, either <span
class="langinline">"currentPage",
+ </span> or <span class="langinline">"previousPage",</span> or
<span class="langinline">"previousAction".
+ </span></p>
+<p class="notepara"><strong>Note:</strong> To clarify the purpose of the <span
class="langinline">return-to</span>
+ attribute, the keywords <span class="langinline">"page"</span> and
+ <span class="langinline">"action"</span> were deprecated as of
WebLogic
+ Workshop 8.1 Service Pack 2. Instead of <span
class="langinline">"page"</span>,
+ the equivalent function is <span
class="langinline">"previousPage"</span>.
+ Instead of <span class="langinline">"action"</span>, the
equivalent
+ function is <span class="langinline">"previousAction"</span>. </p>
+<p class="partdesc"> If the value is <span
class="langinline">"currentPage"</span>,
+ the same JSP page is rendered again by the server, along with any updated
data
+ that occurred as a result of executing the annotated action method. </p>
+<p class="notepara">If the value is <span class="notepara">"</span><span
class="langinline">previousPage</span><span class="notepara">"</span>,
+ the page that was shown before the current page is rendered. </p>
+<p class="notepara">If the value is <span
class="langinline">"previousAction"</span>,
+ the previous action in the current page flow is run. </p>
+<p class="attribute"><a name="return-action"></a>return-action</p>
+<p class="partdesc">The return-action attribute, which is only valid in a
<strong>nested</strong>
+ page flow, causes control to return to the calling (or "nesting")
+ page flow (leaving the current page flow), and then causes the specified
action
+ to be raised on the calling page flow. </p>
+<blockquote>
+ <p class="attribute"><a name="return-form"></a>return-form</p>
+ <p class="partdesc">Optional. The return-form attribute, which is only valid
+ when used with the return-action attribute, causes the given page flow
member
+ variable to be attached to the returned Forward automatically.</p>
+ <p class="attribute"><a name="return-form-type"
id="return-form-type"></a>return-form-type</p>
+ <p class="partdesc">Optional. The return-form-type attribute, which is only
+ valid when used with the return-action attribute, is used in conjunction
with
+ the Forward that is returned. Forward takes the actual FormData instance
as
+ the second argument to its constructor. This attribute declares the type
of
+ the form bean that will be returned to the calling page flow.</p>
+</blockquote>
+<p class="notepara"><strong>Note:</strong> If multiple actions with the same
name
+ (such as "success") exist in the calling page flow, either the
return-form-type
+ value or the return-form member variable type will be used to determine the
+ appropriate action.</p>
+<p class="attribute"><a name="redirect"></a>redirect</p>
+<p class="partdesc">Optional. A boolean, <span class="langinline">true</span>
+ or <span class="langinline">false</span>. Default is <span
class="langinline">false</span>.
+ When set to <span class="langinline">true</span>, navigation causes a
browser
+ redirect to the specified destination. Redirecting is useful when you want
to
+ clear out any data that was attached to a request, or when it is important
that
+ the user's URL bar reflect the actual page that is displayed (instead of the
+ action name). For details, see the <a href="#remarks">Remarks</a>
section.</p>
+<div id="topictext">
+ <h2>Action Method Signatures</h2>
+ <p>An action method has several possible signatures. One signature takes no
+ parameters. For example:</p>
+ <p><font face="Courier New, Courier, mono">public Forward
shopping()</font></p>
+ <p>The second type of signature uses a form. For example:</p>
+ <p><font face="Courier New, Courier, mono">public Forward
shopping(CheckoutForm
+ form)</font></p>
+ <p>The form bean is a class that extends <span
class="langinline">com.bea.wlw.netui.pageflow.FormData</span>.
+ You can define the form bean as an inner class within the page flow class,
+ or separately in the web project.</p>
+ <p>If you are using the <a
href="../../taglib/www.bea.com/workshop/netui-tags-databinding-1.0/declarePageInput.html"><netui-data:declarePageInput>
+ tag</a> in your JSP, you may use a third type of signature, where you
return
+ a new Forward that contains three parameters. For example:</p>
+ <pre> /**
+ * @jpf:action
+ * @Jpf.Forward name="success" path="next.jsp"
+ */
+ public Forward next()
+ throws SQLException
+ {
+ Item[] items = itemsDB.getAllItems();
+ return new Forward("success", "items", items);
+ } </pre>
+ <p>In the new Forward, the parameters in <span class="langinline">new
Forward("success",
+ "items", items)</span> for this example are as follows:</p>
+</div>
+<ul>
+ <li>
+ <div><span class="langinline">"success"</span> is the Forward
name,
+ and its value matches the <span class="langinline">name</span>
attribute's
+ value on the @Jpf.Forward annotation. This match causes navigation to
the
+ next.jsp page when the action is run. </div>
+ </li>
+ <li>
+ <div><span class="langinline">"items"</span> is the name of the
+ page input, as defined in a JSP that is part of this page flow. </div>
+ </li>
+ <li>
+ <div><span class="langinline">items</span> is the name of the actual
object
+ from which data will be obtained. In this case, <span
class="langinline">items</span>
+ is a table referenced by a database control called by the page flow. For
+ more information, see the <a
href="../../guide/netui/samples/tagSamples/netui_databinding/samDeclarePageInputTag.html"><netui-data:declarePageInput>
+ Tag Sample</a>. </div>
+ </li>
+</ul>
+<p>If you need to add more than one page input, you can first create the
Forward
+ object and then call its <span class="langinline">addPageInput</span>
method.
+ For example:</p>
+<pre> /**
+ * @jpf:action
+ * @Jpf.Forward name="success" path="next.jsp"
+ */
+ public Forward next()
+ throws SQLException
+ {
+ Forward fwd = new Forward("success");
+ fwd.addPageInput("products", productsDB.getAllProducts());
+ fwd.addPageInput( "items", itemsDB.getAllItems());
+ return fwd;
+ }</pre>
+<h2><a name="remarks"></a> Remarks</h2>
+<p>The following rules apply to this annotation's use:</p>
+<ul>
+ <li>Optionally, you can add a @jpf:catch annotation for exception
handling.</li>
+ <li>The forward's name and its capitalization <strong>must match
exactly</strong>
+ in the @Jpf.Forward annotation and in the return argument of a Forward
object.
+ For example:
+ <pre>
+/**
+ * @jpf:action
+ * @Jpf.Forward name="<strong>goShopping</strong>"
path="cart.jsp"
+ */
+ public Forward shopping()
+ { return new Forward( "<strong>goShopping</strong>" );</pre>
+ Also note that <span class="langinline">@Jpf.Forward</span> names on
exception-handlers
+ can conflict with <span class="langinline">@Jpf.Forward</span> names on
actions
+ and at the class level. The <span class="langinline">@Jpf.Forward</span>
names
+ that you specify must be unique in the page flow.</li>
+ <li>You could pass a <span class="langinline">FormData</span> instance as
the
+ second argument to the Forward constructor, which has to take a <span
class="langinline">@Jpf.Forward</span>
+ <b>name</b> as its first argument. For example:
+ <pre>
+ /**
+ * @jpf:action
+ * @Jpf.Forward name="success" path="DonePage.jsp"
+ */
+ protected Forward PrefsPageSubmit( PrefsForm form )
+ {
+ userInfo.setFavColor( form.getFavColor() );
+ DoneForm doneForm = new DoneForm();
+ doneForm.setUsername( userInfo.getUsername() );
+ doneForm.setPassword( userInfo.getPassword() );
+ doneForm.setFavColor( userInfo.getFavColor() );
+ return new Forward( "success", doneForm );
+ }</pre>
+ </li>
+ <li> You can use the @Jpf.Forward as a class-level annotation, resulting in
+ a global forward for the page flow. A global forward is useful for pages
that
+ are often forwarded to, such as error pages. When you use a global
forward,
+ you do not have to define the forward on every action method. For example:
+ <pre>
+/**
+ * @Jpf.Forward name="errorPage" path="error.jsp"
+ */
+ public class WelcomeFlow extends PageFlowController
+ {
+ ...
+
+ /**
+ * @jpf:action
+ */
+ protected Forward loginSubmit( LoginForm loginForm )
+ {
+ if ( userManagerBusinessControl.isOutOfService() )
+ {
+ return new Forward( "errorPage" );
+ }
+ else
+ {
+ ...
+ }
+ }
+ }</pre>
+ </li>
+ <li><a name="overloaded"></a>If your page flow uses overloaded actions, you
+ must be aware of the run-time behavior to avoid unintended results. Here
are
+ the rules when an action forwards to an overloaded action:
+ <ul>
+ <li> The choice of overload is determined strictly by the form that was
+ passed in the Forward object. If there was no form passed in the
Forward,
+ the action with no form is used. </li>
+ <li>If you do not put a form on a Forward object, then there must be an
+ action that takes no form; otherwise, it will fail.</li>
+ <li> If a nested page flow returns, the choice of overload is determined
+ strictly by the <span class="langinline">return-form</span> or <span
class="langinline">return-form-type</span>
+ attributes on the returning <span
class="langinline">@Jpf.Forward</span>
+ in the nested page flow. If neither of these attributes are present,
the
+ choice of overload is determined strictly by the form that was passed
+ in the Forward.</li>
+ <li>If a page raises an action, the overload without a form will be
chosen
+ first. If all overloads take a form, then it will choose the one whose
+ full classname comes first alphabetically.</li>
+ </ul>
+ <li><a name="scoping"></a>By default, an instance of a Form Bean passed to
an
+ action method is scoped to the <span class="langinline">request</span>.
You
+ can alternatively scope a Form Bean instance to the life of the Controller
+ file. For information about pageflow-scoped forms, see the Remarks section
+ of the <a href="Action.html">@jpf:action Annotation</a> topic and the help
+ topic <a
href="../../guide/netui/guide/conReqScopedVsPageScopedBean.html">Form
+ Bean Scopings</a>. If you merge in Struts actions, you can scope a Form
Bean
+ instance to the <span class="langinline">session</span> object, as
explained
+ in <a href="../../guide/netui/guide/conStrutsMerge.html">Merging Struts
Artifacts
+ Into Page Flows</a>.
+ <p>The following list describes advanced behavior that is important to
know
+ only for cases when you are forwarding between two actions. This
presents
+ scenarios when action A forwards to action B:</p>
+ <ul>
+ <li>If A is pageflow-scoped and B is not, B gets a new instance of the
Form
+ Bean. </li>
+ <li>If A is pageflow-scoped and B is not, <strong>and</strong> if A
explicitly
+ passes its Form Bean on the Forward to B, B will use A's instance of
the
+ Form Bean (the member variable).</li>
+ <li>If A is not pageflow-scoped and B is pageflow-scoped, B will not use
+ the Form Bean instance that A created. </li>
+ <li>If A is not pageflow-scoped and B is pageflow-scoped,
<strong>and</strong>
+ if A explicitly passes its Form Bean instance on the Forward to B, B
will
+ not only use A's Form Bean instance, but the member variable will be
set
+ to the instance that A passed. </li>
+ <li>If A is pageflow-scoped and B is pageflow-scoped, then B will use
A's
+ Form Bean instance (the member variable).</li>
+ </ul>
+ </li>
+ <li>When an action method causes navigation to a page, it forwards the
request
+ to the URL for that page. Any attributes that were attached to the
original
+ request are available for the next page to use. This means that the user
can
+ send a request for an action, such as "<span
class="langinline">GoToLogin.do</span>".
+ The page flow can attach data to the request and forward to a page, such
as
+ "<span class="langinline">login.jsp</span>", which is sent back
+ to the browser. The user's URL address bar might read
"http://server/welcomeFlow/GoToLogin.do".
+ However, the page displayed is actually
"http://server/welcomeFlow/login.jsp".
+ <p>An alternative method of navigation is by using the redirect attribute
+ in the <span class="langinline">@Jpf.Forward</span> annotation. In this
+ case, the server can respond to the browser and tell it to navigate
somewhere
+ else. If the user requests ("<span
class="langinline">GoToLogin.do</span>"),
+ the page flow could redirect to "<span
class="langinline">login.jsp</span>",
+ which would cause the browser to navigate directly to
"http://server/welcomeFlow/login.jsp".
+ The latter URL is shown in the user's URL bar. Thus the redirect
attribute
+ is useful for two scenarios:</p>
+ </li>
+</ul>
+<ul>
+ <ul>
+ <li class="bulletindent2">When you want to clear out any data that was
attached
+ to a request.</li>
+ <li class="bulletindent2">When it is important that the user's URL bar
reflect
+ the actual page that is displayed.</li>
+ </ul>
+</ul>
+<p class="listplain"> </p>
+<p class="relatedtopics">Related Topics</p>
+<p><a href="action.html">@jpf:action Annotation</a></p>
+<p><a href="catch.html">@jpf:catch Annotation</a></p>
+<p><a href="controller.html">@jpf:controller Annotation</a></p>
+<p><a href="exception-handler.html">@jpf:exception-handler Annotation</a></p>
+<p><a href="message-resources.html">@jpf:message-resources Annotation</a></p>
+<p><a href="validation-error-forward.html">@jpf:validation-error-forward
Annotation</a></p>
+<p><a href="../../guide/netui/guide/conReqScopedVsPageScopedBean.html">Form
Bean
+ Scopings</a></p>
+<p><a href="../../guide/netui/samples/samDataFlow.html">Data Flow
Sample</a></p>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+<!-- InstanceEnd --></html>
Added:
incubator/beehive/trunk/netui/docs/guide/reference/jpf/message-resources.html
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/docs/guide/reference/jpf/message-resources.html
Thu Aug 19 12:54:31 2004
@@ -0,0 +1,123 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Tag.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>@Jpf.MessageResources Annotation</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #2 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<!-- In the component metatag, please indicate whether this topic is for
Integration, Workshop, or Portal. -->
+<meta name="component" content="Workshop">
+<!-- In the description metatag, please provide a BRIEF description of the
topic contents. -->
+<meta name="description" content="@Jpf.MessageResources Annotation reference
for page flows">
+<!-- In the component metatag, please list keywords that will help a user
search for this topic. -->
+<meta name="keywords" content="@Jpf.MessageResources Annotation reference
message resources validation page flows">
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../core/CookieClass.js"></script>
+<script language="JavaScript" src="../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">@Jpf.MessageResources Annotation</h1>
+</div>
+<div id="topictext">
+ <p>You can use the <span class="langinline">@Jpf.MessageResources</span>
annotation
+ at the page flow class level to specify a message bundle. Using message
resources
+ allows you to internationalize your web applications by <strong>not
hard-coding</strong>
+ labels in your JSP pages. For example, an ErrorMessages.properties
resource
+ file could contain messages to display when form validation errors
occur.</p>
+ <h2>Syntax</h2>
+ <p class="syntax">@Jpf.MessageResources</p>
+ <p class="syntaxindent">resources =
"<property-resources>"</p>
+ <p class="syntaxindent">[ key = "<bundle-key-name>" ]</p>
+ <h2>Attributes</h2>
+ <p class="attribute"><a name="resources"
id="MessageResources"></a>resources</p>
+ <p class="partdesc">Required. A resource that contains message properties,
+ such as an Errors.properties file that you create separately and place in a
+ subfolder under the page flow's /WEB-INF/classes folder. For example:</p>
+ <p class="partdesc"><font face="Courier New, Courier,
mono">@Jpf.MessageResources
+ resources="validation.ErrorMessages"</font></p>
+ <p class="partdesc">The page flow runtime will look for the messages in a
+ subfolder of the web project's <span class="langinline">/WEB-INF</span>
+ folder, either:</p>
+</div>
+<ul>
+ <li>
+ <div class="partdesc">
+ /<span
class="langinline">WEB-INF/classes/validation/ErrorMessages.properties</span>
+ </div>
+ </li>
+ <li>
+ <div class="partdesc">
+ Or in a JAR file in <span class="langinline">/WEB-INF/lib</span>
+ </div>
+ </li>
+</ul>
+<div>
+ <p class="attribute"><a name="key" id="MessageResources"></a>key</p>
+ <p class="partdesc">Optional. You can specify the name of the <span
class="langinline">ServletContext</span>
+ attribute in which to store the Bundle read from the
+ <property-resources>. In most cases you can omit this attribute and
+ accept the default of <span
class="langinline">org.apache.struts.Globals.MESSAGE_KEY</span>,
+ which works with the <netui:error> and <netui:errors> JSP tags
+ provided by WebLogic Workshop.</p>
+ <h2>Remarks</h2>
+ <p>The following rules apply to this annotation's use:</p>
+ <ul style="list-style: disc;" type="disc">
+ <li>
+ <p>The message property resource cannot reside in the WEB-INF/...
+ directory of another web project. The *.properties file must reside in a
+ /WEB-INF/classes/<folder>/ directory, or in a JAR in /WEB-INF/lib
+ (in a JAR), for this web project.</p>
+ </li>
+ <li>For a sample page flow that demonstrates form validation and the use of
+ the message properties, see the following page flow. Also see the
+ <netui:error> tag used in this sample page flow's JSP files.</li>
+ <p><font face="Courier New, Courier,
mono"><WEBLOGIC_HOME>\samples\workshop\SamplesApp\WebApp\validation\Controller.jpf</font></p>
+ <li>For sample message properties files, see:</li>
+ <p><font face="Courier New, Courier,
mono"><WEBLOGIC_HOME>\samples\workshop\SamplesApp\WebApp\WEB-INF\classes\validation\basic\Messages.properties</font></p>
+ <p>and:</p>
+ <p><font face="Courier New, Courier,
mono"><WEBLOGIC_HOME>\samples\workshop\SamplesApp\WebApp\WEB-INF\classes\validation\validator\Messages.properties</font></p>
+ </ul>
+ <div>
+ <p class="relatedtopics">Related Topics</p>
+
+ <p><a href="catch.html">@jpf:catch Annotation</a></p>
+
+ <p><a href="controller.html">@jpf:controller Annotation</a></p>
+
+ <p><a href="exception-handler.html">@jpf:exception-handler Annotation</a></p>
+
+ <p><a href="forward.html">@jpf:forward Annotation</a></p>
+ <p><a href="validation-error-forward.html">@jpf:validation-error-forward
Annotation</a></p>
+ <p><a
href="../../guide/netui/guide/conGettingStartedPageFlows.html">Getting
+ Started with Page Flows</a></p>
+ <p> </p>
+ </div>
+ <!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+<!-- InstanceEnd --></html>
Added:
incubator/beehive/trunk/netui/docs/guide/reference/jpf/navJpfAnnotations.html
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/docs/guide/reference/jpf/navJpfAnnotations.html
Thu Aug 19 12:54:31 2004
@@ -0,0 +1,99 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Navigational.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>Page Flow Annotations</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #3 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<!-- In the component metatag, please indicate whether this topic is for
Integration, Workshop, or Portal. -->
+<meta name="component" content="workshop">
+<!-- In the description metatag, please provide a BRIEF description of the
topic contents. -->
+<meta name="description" content>
+<!-- In the component metatag, please list keywords that will help a user
search for this topic. -->
+<meta name="keywords" content>
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../core/CookieClass.js"></script>
+<script language="JavaScript" src="../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+
+<div id="topictitle">
+ <h2 class="navtitle">Page Flow Annotations</h2>
+ <p class="navtitle">The page flow annotations used in web applications define
+ the behavior of the page flow controller class and its methods.</p>
+ <p class="navtitle"><a href="../../javadoc-tag/jpf/action.html">@jpf:action
+ Annotation</a></p>
+ <p class="navdesc">Designates an action method. Optionally, this annotation
+ may set login and J2EE role requirements. Without a <span
class="langinline">@jpf:action</span>
+ annotation, an action method will not be recognized by the page flow
runtime
+ as an action method. This annotation may be used at the method-level
only.</p>
+ <p class="navtitle"><a href="../../javadoc-tag/jpf/catch.html">@jpf:catch
Annotation</a></p>
+ <p class="navdesc">Provides information used by the page flow runtime to
catch
+ exceptions and possibly route them to error handlers. This annotation may be
+ used on action methods and the page flow class, and in the global page flow
+ that resides in WEB-INF/src/global/Global.app.</p>
+ <p class="navtitle"><a
href="../../javadoc-tag/jpf/controller.html">@Jpf.Controller
+ Annotation</a></p>
+ <p class="navdesc">Indicates whether the page flow is nested; whether users
+ must be logged in; whether logged-in users must be associated with existing
+ J2EE roles; and whether a Struts XML configuration file should be merged into
+ the page flow. This annotation may be used at the page flow class level
only.</p>
+ <p class="navtitle"><a
href="../../javadoc-tag/jpf/exception-handler.html">@jpf:exception-handler
+ Annotation</a></p>
+ <p class="navdesc">Designates an error handler method. Without a <span
class="langinline">@jpf:exception-handler</span>
+ annotation, the page flow runtime will not recognize an error handler
+ method. </p>
+ <p class="navtitle"><a
href="../../javadoc-tag/jpf/forward.html">@jpf:forward
+ Annotation</a></p>
+ <p class="navdesc">Describes a location to which the page flow runtime should
+ go to next. The location may be a JSP, a page flow, or an action method. This
+ annotation may be used on action methods and the page flow class, and in the
+ global page flow that resides in WEB-INF/src/global/Global.app.</p>
+ <p class="navtitle"><a
href="../../javadoc-tag/jpf/message-resources.html">@jpf:message-resources
+ Annotation</a></p>
+ <p class="navdesc">Specifies a message bundle, allowing you to implement
+ validation in the page flow's form beans. This annotation may be used at the
+ page flow class level only.</p>
+ <p class="navtitle"><a
href="../../javadoc-tag/jpf/validation-error-forward.html">@jpf:validation-error-forward
+ Annotation</a></p>
+ <p class="navdesc">Indicates which page should be loaded, or which action
should
+ be run, if a form validation error occurs as a result of running the
annotated
+ action. This annotation may be used at the method level only.</p>
+ <p class="navtitle"><a
href="../../javadoc-tag/common/control.html">@common:control
+ Annotation</a></p>
+ <p class="navdesc">Indicates that a member variable in a page flow references
+ a WebLogic Workshop control, such as a control or a database control.</p>
+ <p class="relatedtopics">Related Topics</p>
+ <p><a
href="../../guide/netui/guide/navGuidetoBuildingWebApplications.html">Guide
+ to Building Page Flows</a></p>
+ <p> </p>
+</div>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+
+<!-- InstanceEnd --></html>
Added: incubator/beehive/trunk/netui/docs/guide/reference/jpf/simple-action.html
==============================================================================
--- (empty file)
+++ incubator/beehive/trunk/netui/docs/guide/reference/jpf/simple-action.html
Thu Aug 19 12:54:31 2004
@@ -0,0 +1,62 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Tag.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>@Jpf.SimpleAction Annotation</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #2 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<!-- In the component metatag, please indicate whether this topic is for
Integration, Workshop, or Portal. -->
+<meta name="component" content="Workshop">
+<!-- In the description metatag, please provide a BRIEF description of the
topic contents. -->
+<meta name="description" content="@jpf:action Annotation reference for page
flows">
+<!-- In the component metatag, please list keywords that will help a user
search for this topic. -->
+<meta name="keywords" content="@jpf:action Annotation reference page flows">
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../core/CookieClass.js"></script>
+<script language="JavaScript" src="../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">@Jpf.SimpleAction Annotation</h1>
+</div>
+<div id="topictext">
+ <p>[tbd]</p>
+ <h2>Syntax</h2>
+ <p class="syntax">[tbd] </p>
+ <h2>Attributes</h2>
+ <p class="attribute"><a name="form" id="form"></a>[tbd]</p>
+ <h2><a name="remarks"></a>Remarks</h2>
+ <p>[tbd]</p>
+ <p class="relatedtopics">Related Topics</p>
+ <p><a href="catch.html">[tbd]</a><a
href="../../guide/netui/guide/conReqScopedVsPageScopedBean.html"></a></p>
+ <h3>Samples</h3>
+ <p><a href="../../guide/netui/samples/samDataFlow.html">[tbd]</a></p>
+</div>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+<!-- InstanceEnd --></html>
Added:
incubator/beehive/trunk/netui/docs/guide/reference/jpf/validation-error-forward.html
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/docs/guide/reference/jpf/validation-error-forward.html
Thu Aug 19 12:54:31 2004
@@ -0,0 +1,285 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Tag.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>@jpf:action Annotation</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #2 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<!-- In the component metatag, please indicate whether this topic is for
Integration, Workshop, or Portal. -->
+<meta name="component" content="Workshop">
+<!-- In the description metatag, please provide a BRIEF description of the
topic contents. -->
+<meta name="description" content="@Jpf.Validation-error-forward Annotation
reference for page flows">
+<!-- In the component metatag, please list keywords that will help a user
search for this topic. -->
+<meta name="keywords" content="@Jpf.Validation-error-forward form validation
error forward Annotation reference page flows">
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../core/CookieClass.js"></script>
+<script language="JavaScript" src="../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">@Jpf.Validation-error-forward Annotation</h1>
+</div>
+<div id="topictext">
+ <p>You can use the <span class="langinline">@Jpf.Validation-error-forward
</span>
+ annotation to indicate which page should be loaded, or which action should
+ be run, if a form validation error occurs as a result of running the
annotated
+ action. </p>
+ <p class="notepara"><strong>Note:</strong> Starting in WebLogic Workshop 8.1
+ Service Pack 2, this annotation replaces the deprecated <span
class="langinline">validation-error-page</span>
+ attribute that was available on the <span
class="langinline">@jpf:action</span>
+ annotation. The <span
class="langinline">@Jpf.Validation-error-forward</span>
+ annotation's attributes provide a more flexible validation forwarding
behavior;
+ specifically, they allow you to indicate <span
class="langinline">return-to="..."</span>
+ options, and they allow forwarding to non-local files. </p>
+ <h2>Syntax</h2>
+ <p class="syntax">@Jpf.Validation-error-forward</p>
+ <p class="syntaxindent"> name = "<forward name>" </p>
+ <p class="syntaxindent">{ path =
"<path>" | return-action
+ = "<action name>" | return-to =
{"currentPage"
+ | "previousPage" | "previousAction"} }</p>
+ <p class="syntaxindent">{ return-form = "<form name>" |
return-form-type
+ = "<form type>" }</p>
+ <p class="syntaxindent">[ redirect = { "true" | "false"
+ } ]</p>
+ <p class="syntaxindent"> </p>
+ <h2>Attributes</h2>
+ <div id="topictext">
+ <div id="topictext">
+ <p class="attribute"><a name="name"></a>name</p>
+ <p class="partdesc">Required. Specifies the name of the forward, which
causes
+ the navigation to occur. </p>
+ <p class="attribute"><a name="path"></a>path</p>
+ <p class="partdesc">You must specify only one of the following: this
<span class="langinline">path</span>
+ attribute, or the <span class="langinline">return-action</span>
attribute,
+ or one of the <span class="langinline">return-to</span>
attributes.
+ The <span class="langinline">path</span> attribute is a string that
maps
+ to one of the following entities:</p>
+ </div>
+ <ul>
+ <li>
+ <div class="partdesc"> A JSP or another page flow in this web
application
+ </div>
+ </li>
+ <li>
+ <div class="partdesc"> An action within a page flow in this web
application
+ </div>
+ </li>
+ <li>
+ <div class="partdesc"> A JSP somewhere on the web, in this web
application
+ or a different web application. Currently the URL must be full URL,
+ such as <span
class="langinline">path="http://someOtherServer.com/foo/bar/valError.jsp"</span>.</div>
+ </li>
+ </ul>
+ </div>
+ <blockquote>
+ <p>If the path begins with a protocol such as "http:" the page
flow
+ runtime will look outside of this web application for the resource, and
+ it will automatically cause a redirect (rather than a server forward) to
+ the resource. If the path begins with a forward slash, "/",
the
+ runtime will start at the web application's root directory to locate the
+ resource. If the path omits the forward slash, "/", the
reference
+ is relative to the page flow's directory.</p>
+ </blockquote>
+ <p class="attribute"><a name="return-to" id="return-to"></a>return-to</p>
+ <p class="partdesc">The return-to attribute always applies to the current
page
+ flow, whether it is a nested page flow or the main page flow. To return to
+ an action in the “nesting” page flow use the return-action
attribute.</p>
+ <p class="partdesc">The value for the <span
class="langinline">return-to</span>
+ attribute must be a keyword, either <span
class="langinline">"currentPage",
+ </span> or <span class="langinline">"previousPage",</span> or
<span class="langinline">"previousAction".
+ </span></p>
+ <p class="notepara"><strong>Note:</strong> To clarify the purpose of the
<span class="langinline">return-to</span>
+ attribute, the keywords <span class="langinline">"page"</span>
and
+ <span class="langinline">"action"</span> were deprecated as of
WebLogic
+ Workshop 8.1 Service Pack 2. Instead of <span
class="langinline">"page"</span>,
+ the equivalent function is <span
class="langinline">"previousPage"</span>.
+ Instead of <span class="langinline">"action"</span>, the
equivalent
+ function is <span class="langinline">"previousAction"</span>.
</p>
+ <p class="partdesc"> If the value is <span
class="langinline">"currentPage"</span>,
+ the same JSP page is rendered again by the server, along with any updated
+ data that occurred as a result of executing the annotated action method.
</p>
+ <p class="notepara">If the value is <span
class="notepara">"</span><span class="langinline">previousPage</span><span
class="notepara">"</span>,
+ the page that was shown before the current page is rendered. </p>
+ <p class="notepara">If the value is <span
class="langinline">"previousAction"</span>,
+ the previous action in the current page flow is run. </p>
+ <p class="attribute"><a name="return-action"></a>return-action</p>
+ <p class="partdesc">The return-action attribute, which is only valid in a
<strong>nested</strong>
+ page flow, causes control to return to the calling (or
"nesting")
+ page flow (leaving the current page flow), and then causes the specified
action
+ to be raised on the calling page flow. </p>
+ <blockquote>
+ <p class="attribute"><a name="return-form"></a>return-form</p>
+ <p class="partdesc">Optional. The return-form attribute, which is only
valid
+ when used with the return-action attribute, causes the given page flow
member
+ variable to be attached to the returned Forward automatically.</p>
+ <p class="attribute"><a name="return-form-type"
id="return-form-type"></a>return-form-type</p>
+ <p class="partdesc">Optional. The return-form-type attribute, which is
only
+ valid when used with the return-action attribute, is used in conjunction
+ with the Forward that is returned. Forward takes the actual FormData
instance
+ as the second argument to its constructor. This attribute declares the
type
+ of the form bean that will be returned to the calling page flow.</p>
+ </blockquote>
+ <p class="notepara"><strong>Note:</strong> If multiple actions with the same
+ name (such as "success") exist in the calling page flow, either
+ the return-form-type value or the return-form member variable type will be
+ used to determine the appropriate action.</p>
+ <p class="attribute"><a name="redirect"></a>redirect</p>
+ <p class="partdesc">Optional. A boolean, <span
class="langinline">true</span>
+ or <span class="langinline">false</span>. Default is <span
class="langinline">false</span>.
+ When set to <span class="langinline">true</span>, navigation causes a
browser
+ redirect to the specified destination. Redirecting is useful when you want
+ to clear out any data that was attached to a request, or when it is
important
+ that the user's URL bar reflect the actual page that is displayed (instead
+ of the action name). For details, see the Remarks section below.</p>
+<h2>Remarks</h2>
+ <p>The following rules apply to this annotation's use:</p>
+ <ul style="list-style: disc;" type="disc">
+ <li>
+ <p>If you used the deprecated validation-error-page attribute on the
<span class="langinline">@jpf:action</span>
+ annotation, use this more flexible <span
class="langinline">@Jpf.Validation-error-forward</span>
+ annotation instead. </p>
+ </li>
+ <li>The<span class="langinline">@Jpf.Validation-error-forward</span>
annotation
+ is designed to let you handle form input validation errors. In that
sense,
+ this annotation is not related to the <span
class="langinline">@jpf:catch</span>
+ and <span class="langinline">@jpf:exception-handler</span> annotations,
+ which are designed to catch and handle exceptions. </li>
+ <li>The JPF compiler in WebLogic Workshop will issue an error if there is
+ more than one <span
class="langinline">@Jpf.Validation-error-forward</span>
+ annotation on an action. </li>
+ <li>The target value for the <span class="langinline">path</span>
attribute
+ can be local or remote, in the same page flow, or a different page flow,
+ or a page on a different server. For the <span
class="langinline">return-to</span>
+ attribute, the target value refers to an entity in the current page
flow.
+ A few examples:<br>
+ <br>
+ <code>* <!-- Same page flow: --> <br>
+* @Jpf.Validation-error-forward name="failure"
path="foo.jsp"
+<br><br>
+* <!-- Different page flow: --> <br>
+* @Jpf.Validation-error-forward name="failure"
path="/foo/bar.jsp"
+<br><br>
+* <!-- Different server: --> <br>
+* @Jpf.Validation-error-forward name="failure" <br>
+* path="http://someOtherServer.com/foo/bar/etc.jsp"
+<br><br>
+* <!-- Current page in the current page flow: --> <br>
+* @Jpf.Validation-error-forward name="failure" <br>
+* return-to="currentPage"
+<br><br>
+* <!-- Previous page in the current page flow: --> <br>
+* @Jpf.Validation-error-forward name="failure" <br>
+* return-to="previousPage"
+<br><br>
+* <!-- Previous action in the current page flow --> <br>
+* @Jpf.Validation-error-forward name="failure" <br>
+* return-to="previousAction"
+</code></li>
+
+ <li>Here is a portion of the validation sample that is installed with
WebLogic
+ Workshop. For the full sample, see
<WEBLOGIC_HOME>\samples\workshop\SamplesApp\WebApp\validation\...</li>
+ <blockquote>
+ <pre> /**
+ * @jpf:action
+ * @jpf:forward name="success" path="success.jsp"
+ * @Jpf.Validation-error-forward name="failure" return-to="currentPage"
+ */
+ public Forward submitForm( Form form )
+ {
+ return new Forward( "success" );
+ }
+
+
+...
+
+ /**
+ * This form bean does validation manually.
+ */
+ public static class Form extends FormData
+ {
+ private String _email;
+ private String _zipCode;
+
+ public String getEmail()
+ {
+ return _email;
+ }
+
+ public void setEmail( String email )
+ {
+ _email = email;
+ }
+
+ public String getZipCode()
+ {
+ return _zipCode;
+ }
+
+ public void setZipCode( String zipCode )
+ {
+ _zipCode = zipCode;
+ }
+
+ public ActionErrors validate( ActionMapping mapping,
HttpServletRequest request )
+ {
+ ActionErrors errs = new ActionErrors();
+
+ int at = _email.indexOf( '@' );
+ int dot = _email.lastIndexOf( '.' );
+
+ if ( at == -1 || at == 0 || dot == -1 || at > dot )
+ {
+ errs.add( "email", new ActionError( "badEmail" ) );
+ }
+
+ if ( _zipCode.length() != 5 )
+ {
+ errs.add( "zipCode", new ActionError( "badZip", new Integer( 5
) ) );
+ }
+
+ return errs;
+ }
+ }
+</pre></p>
+ </blockquote>
+ </ul>
+ <p class="relatedtopics">Related Topics</p>
+ <p><a href="../../guide/netui/guide/conValidatingUserInput.html">Validating
+ User Input</a></p>
+ <p><a href="../../guide/netui/samples/samValidation.html">Form Validation
Sample</a></p>
+ <p><a href="catch.html">@jpf:catch Annotation</a></p>
+ <p><a href="controller.html">@jpf:controller Annotation</a></p>
+ <p><a href="exception-handler.html">@jpf:exception-handler Annotation</a></p>
+ <p><a href="forward.html">@jpf:forward Annotation</a></p>
+ <p><a href="message-resources.html">@jpf:message-resources Annotation</a></p>
+ <p><a href="../../guide/netui/guide/conGettingStartedPageFlows.html">Getting
+ Started with Page Flows</a></p>
+</div>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+<!-- InstanceEnd --></html>
Added:
incubator/beehive/trunk/netui/docs/guide/reference/navPageFlowandJSPReference.html
==============================================================================
--- (empty file)
+++
incubator/beehive/trunk/netui/docs/guide/reference/navPageFlowandJSPReference.html
Thu Aug 19 12:54:31 2004
@@ -0,0 +1,67 @@
+<!doctype HTML public "-//W3C//DTD HTML 4.0 Frameset//EN">
+
+<html><!-- InstanceBegin template="/Templates/Navigational.dwt"
codeOutsideHTMLIsLocked="false" -->
+<head>
+<!-- InstanceBeginEditable name="doctitle" -->
+<title>Page Flow and JSP Reference</title>
+<!-- InstanceEndEditable -->
+
+<!--(Meta)==========================================================-->
+<meta http-equiv=Content-Type content="text/html; charset=$CHARSET;">
+<meta name=workshop content=WWKSHOP>
+<meta name="revision" content="$Revision: #3 $">
+<meta name="date" content="$Date: 2004/06/25 $">
+<!-- InstanceBeginEditable name="metatags" -->
+<!-- In the component metatag, please indicate whether this topic is for
Integration, Workshop, or Portal. -->
+<meta name="component" content="workshop">
+<!-- In the description metatag, please provide a BRIEF description of the
topic contents. -->
+<meta name="description" content>
+<!-- In the component metatag, please list keywords that will help a user
search for this topic. -->
+<meta name="keywords" content>
+
+<!-- InstanceEndEditable -->
+
+<!--(Links)=========================================================-->
+<!-- InstanceBeginEditable name="head" -->
+<link href="../beehive.css" rel="stylesheet" type="text/css">
+<!-- InstanceEndEditable -->
+<link href="../../../../workshop.css" rel="stylesheet" type="text/css">
+<a href="../../../../core/index.html" id="index"></a>
+<script language="JavaScript" src="../../../../core/topicInfo.js"></script>
+<script language="JavaScript" src="../../../../core/CookieClass.js"></script>
+<script language="JavaScript"
src="../../../../core/displayContent.js"></script>
+</head>
+
+<!--(Body)==========================================================-->
+<body>
+<script language="JavaScript">
+displayInFrames();
+</script>
+<!-- InstanceBeginEditable name="body" -->
+<div id="topictitle">
+ <h1 class="Title">Page Flow and JSP Reference</h1>
+</div>
+<div id="topictext">
+ <p>These topics provide reference information for developing page flows and
+ JSP pages.</p>
+ <h2>Topics Included in This Section</h2>
+ <p class="navtitle"><a href="jpf/navJpfAnnotations.html">Page Flow
Annotations</a></p>
+ <p class="navdesc">Provides the annotations that define the behavior of the
+ page flow controller class and its methods.</p>
+ <p class="navtitle"><a href="taglib/index.html"><netui>
+ Tag Library Reference</a></p>
+ <p class="navdesc">Documents the JSP tags used with Page Flows.</p>
+ <p class="navtitle"><a href="java-class/index.html">Page Flow API
Reference</a></p>
+ <p class="navdesc">Provides Javadoc API reference for the Page Flow
implementing
+ classes.</p>
+ <p class="navtitle"><a href="conRequiredParentTags.html">JSP Tags
Hierarchy</a></p>
+ <p class="navdesc">Shows the parent tags required for each tag in the JSP
tag
+ library.</p>
+</div>
+<!-- InstanceEndEditable -->
+<script language="JavaScript">
+writeTopicInfo();
+</script>
+</body>
+
+<!-- InstanceEnd --></html>
Modified: incubator/beehive/trunk/netui/docs/guide/tutorial/tutJPFStep4.html
==============================================================================
--- incubator/beehive/trunk/netui/docs/guide/tutorial/tutJPFStep4.html
(original)
+++ incubator/beehive/trunk/netui/docs/guide/tutorial/tutJPFStep4.html Thu Aug
19 12:54:31 2004
@@ -98,7 +98,6 @@
)
public Forward processData(ProcessDataForm form)
{<br> System.out.println("Name: " + form.name);<br>
System.out.println("Age: " + form.age);
- getRequest().setAttribute("data", form);
return new Forward("success");
}
Modified: incubator/beehive/trunk/netui/docs/guide/tutorial/tutJPFStep5.html
==============================================================================
--- incubator/beehive/trunk/netui/docs/guide/tutorial/tutJPFStep5.html
(original)
+++ incubator/beehive/trunk/netui/docs/guide/tutorial/tutJPFStep5.html Thu Aug
19 12:54:31 2004
@@ -16,6 +16,7 @@
<p>The tasks in this step are:</p>
</div>
<ul>
+ <li>To process the submittted data</li>
<li>To create a JSP page to display submitted data</li>
<li>To build the Page Flow</li>
<li>To restart Tomcat</li>
@@ -33,6 +34,21 @@
</div>
</div>
<div>
+ <h2>To Process the Submitted Data</h2>
+ <p>Edit the processData method in the Controller.jpf file so it appears as
+ follows. Code to add appears in red.</p>
+ <pre>@Jpf.Action(
+ forwards = {
+ @Jpf.Forward(name = "success", path = "showData.jsp")
+ }
+ )
+ public Forward processData(ProcessDataForm form)
+ {
+ System.out.println("Name: " + form.name);
+ System.out.println("Age: " + form.age);
+ <font color="#FF0000">getRequest().setAttribute("data", form);</font>
+ return new Forward("success");
+ }</pre>
<h2>To Create a JSP Page to Display Submitted Data</h2>
<p>Create a file named <code>displayData.jsp</code> in the directory
<code>[TOMCAT_HOME]/directory/pageflow_tutorial</code>.
Edit <code>showData.jsp</code> so it appears as follows.</p>