Author: steveh Date: Mon Dec 20 14:26:54 2004 New Revision: 122891 URL: http://svn.apache.org/viewcvs?view=rev&rev=122891 Log: Latest edits to the page flow runtime config docs. Modified: incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/pageflow/config/netui-config.xml
Modified: incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/pageflow/config/netui-config.xml Url: http://svn.apache.org/viewcvs/incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/pageflow/config/netui-config.xml?view=diff&rev=122891&p1=incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/pageflow/config/netui-config.xml&r1=122890&p2=incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/pageflow/config/netui-config.xml&r2=122891 ============================================================================== --- incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/pageflow/config/netui-config.xml (original) +++ incubator/beehive/trunk/docs/forrest/src/documentation/content/xdocs/pageflow/config/netui-config.xml Mon Dec 20 14:26:54 2004 @@ -1,30 +1,264 @@ <?xml version="1.0" encoding="UTF-8"?> -<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "http://forrest.apache.org/dtd/document-v13.dtd"> +<!DOCTYPE document PUBLIC "-//APACHE//DTD Documentation V1.2//EN" "http://forrest.apache.org/dtd/document-v20.dtd"> <document> <header> - <title>netui-config.xml</title> + <title>Reference Documentation: netui-config.xml File</title> </header> <body> -<p>The netui-config.xml file, which resides in the web application's WEB-INF directory, contains webapp-wide configuration settings for all Page Flows in the web app. Descriptions for each element in the configuration file appear below.</p> -<section> - <title>Action interceptors</title> -<p><strong><pageflow-action-interceptors></strong></p> -<p>If you want to be notified before every action that's run in the webapp, you configure one of these. A simple example of this is monitoring infrastructure that keeps track of a count of actions raised -- you can register an interceptor that runs the counting code before going to any action. A more complex example is an interceptor that *redirects* you to another page flow before allowing you to go to the current one; for instance, it might take you to a nested page flow that asks you to fill out a "satisfaction survey" before sending you to the destination page flow.</p> -</section> -<section> - <title>Handlers</title> -<p><strong><pageflow-handlers></strong></p> -<p>These settings let you override base framework behavior. A good example is the LoginHandler. By default, we use standard Servlet APIs to see if you're logged in, and we use some server-specific APIs to actually log you in when login() is called inside a page flow. If you want to replace this behavior with your own login scheme (which may look at a User database table for login information), you can provide your own LoginHandler that defines methods like login() and isUserInRole().</p> -</section> -<section> - <title>PageFlow Config</title> - <p><strong><pageflow-config></strong></p> -<p>This is just the place for settings that configure the page flow runtime across the webapp. If you want to disable file-upload, for instance, you set the multipart-handler to "none". There will be more settings here soon.</p> + <section> + <title>Description</title> + <p> + The <code>netui-config.xml</code> file configures the runtime behavior of your Page Flow web + app. + </p> + <p>Use <code>netui-config.xml</code> to declare interceptor classes, override the default handler classes, + etc.</p> + </section> + <section> + <title>Elements</title> + <!--<section><title><action-interceptor></title><p> Â </p></section> + <section><title><after-action></title><p> Â </p></section> + <section><title><before-action></title><p> Â </p></section> + <section><title><binding-context></title><p> Â </p></section> + <section><title><binding-contexts></title><p> Â </p></section> + <section><title><converter-class></title><p> Â </p></section> + <section><title><default-language></title><p> Â </p></section> + <section><title><description></title><p> Â </p></section> + <section><title><doctype></title><p> Â </p></section> + <section><title><enable-renesting></title><p> Â </p></section> + <section><title><ensure-secure-forwards></title><p> Â </p></section> + <section><title><exceptions-handler-class></title><p> Â </p></section> + <section><title><expression-language></title><p> Â </p></section> + <section><title><expression-languages></title><p> Â </p></section> + <section><title><factory-class></title><p> Â </p></section> + <section><title><forward-redirect-handler-class></title><p> Â </p></section> + <section><title><global></title><p> Â </p></section> + <section><title><id-javascript></title><p> Â </p></section> + <section><title><interceptor-class></title><p> Â </p></section> + <section><title><iterator-factories></title><p> Â </p></section> + <section><title><iterator-factory></title><p> Â </p></section> + <section><title><jsp-tag-config></title><p> Â </p></section> + <section><title><legacy-tag-support></title><p> Â </p></section> + <section><title><locator-class></title><p> Â </p></section> + <section><title><login-handler-class></title><p> Â </p></section> + --> + <section><title><max-forwards-per-request></title><p>If the number of server + forwards exceeds the given count, an error is written to the response and no further + forwarding is excuted. This is mainly to prevent infinite loops of server forwards. + To reproduce the error, invoke this action in a Page Flow:</p> +<source> +<![CDATA[ @Jpf.Action( + forwards={ + @Jpf.Forward(name="self", path="overflow.do") + } + ) + public Forward overflow() + { + return new Forward( "self" ); + }]]></source> + +<p>If the jpf-forward-overflow-count parameter is ommitted from the web.xml file, +the error will be written to the response after 50 server forwards within a single request. Â +</p> +<p><strong>Example:</strong></p> +<source> +<![CDATA[ +<netui-config> + ... + <pageflow-config> + ... + <max-forwards-per-request>100</max-forwards-per-request> + ... + </pageflow-config> + ... +</netui-config> +]]></source> </section> + + <section><title><max-nesting-stack-depth></title><p> + This parameter sets the maximum size of the Page Flow nesting stack. + If Page Flows are repeatedly nested until the stack exceeds the specified value, + an error is written to the response object and any further nesting is not allowed. + This helps prevent the nesting stack from consuming large amounts of resources. + + Â </p> +<p><strong>Example:</strong></p> +<source> +<![CDATA[ +<netui-config> + ... + <pageflow-config> + ... + <max-nesting-stack-depth>10</netui:max-nesting-stack-depth> + ... + </pageflow-config> + ... +</netui-config> +]]></source> + </section> + <!-- + <section><title><module-config-locator></title><p> Â </p></section> + <section><title><module-config-locators></title><p> Â </p></section>--> + <section><title><multipart-handler></title><p> + To disable file upload, set the value to "none". + [todo: other values include memory, ?, ...] +<p><strong>Example:</strong></p> +<source> +<![CDATA[ +<netui-config> + ... + <pageflow-config> + ... + <multipart-handler>none</multipart-handler> + ... + </pageflow-config> + ... +</netui-config> +]]></source> + Â </p></section> + <!-- <section><title><name></title><p> Â </p></section>--> + <section> + <title><netui-config></title> + <p> + This is just the place for settings that configure the page + flow runtime across the webapp. If you want to disable file-upload, + for instance, you set the multipart-handler to "none". + There will be more settings here soon. + Â </p> + </section> + <section> + <title><pageflow-action-interceptors></title> + <p> + +If you want to be notified before (or after) every action that's run in the webapp, +you configure a <pageflow-action-interceptor> group. +A simple example of this would be a monitoring infrastructure +that keeps track of the number of actions raised. To keep track of the number of actions raised, +register an interceptor +that runs the counting code before going to any action. A more complex example +is an interceptor that *redirects* you to another page flow before allowing you +to go to the current one; for instance, it might take you to a nested page flow +that asks you to fill out a "satisfaction survey" before sending you to the +destination page flow. </p> + <p> +Example: +</p> + <source><![CDATA[ <pageflow-action-interceptors> + <global> + <before-action> + <action-interceptor> + <interceptor-class>myApp.interceptors.InterceptorsController$BeforeInterceptor</interceptor-class> + </action-interceptor> + </before-action> + <after-action> + <action-interceptor> + <interceptor-class>myApp.interceptors.InterceptorsController$AfterInterceptor</interceptor-class> + </action-interceptor> + </after-action> + </global> + </pageflow-action-interceptors>]]></source> + <p><strong>Also see:</strong></p> + <p>Interface org.apache.beehive.netui.pageflow.interceptor.ActionInterceptor</p> + </section> + <section> + <title><pageflow-config></title> + <p> +This is just the place for settings that configure the page flow +runtime across the webapp. If you want to disable file-upload, for instance, +you set the multipart-handler to "none". There will be more settings here soon. + Â </p> + </section> + <section> + <title><pageflow-handlers></title> + <p> +These settings let you override base framework behavior. +A good example is the LoginHandler. By default, we use standard Servlet +APIs to see if you're logged in, and we use some server-specific APIs to +actually log you in when login() is called inside a page flow. +If you want to replace this behavior with your own login scheme +(which may look at a User database table for login information), +you can provide your own LoginHandler that defines methods like login() and isUserInRole(). +</p> + </section> + <!-- +<section><title><reloadable-class-handler-class></title><p> Â </p></section> +<section><title><throw-session-expired-exception></title><p> Â </p></section> +<section><title><tree-image-location></title><p> Â </p></section> +<section><title><type></title><p> Â </p></section> +<section><title><type-converter></title><p> Â </p></section> +<section><title><type-converters></title><p> Â </p></section> +--> + </section> + <section> + <title>Example</title> + <p> + Use the following example <code>netui-config.xsd</code> file as a template.</p> + <source><![CDATA[<?xml version="1.0" encoding="UTF-8"?> + +<netui-config xmlns="http://beehive.apache.org/netui/2004/server/config"> + + <legacy-tag-support>false</legacy-tag-support> + + <expression-languages> + <default-language>netuiel</default-language> + <expression-language> + <name>netuiel</name> + <factory-class>org.apache.beehive.netui.script.el.ExpressionEvaluatorImpl$NetUIELEngineFactory</factory-class> + </expression-language> + </expression-languages> + + <pageflow-action-interceptors> + <global> + <before-action> + <action-interceptor> + <interceptor-class>miniTests.interceptors.InterceptorsController$BeforeInterceptor</interceptor-class> + </action-interceptor> + <action-interceptor> + <interceptor-class>miniTests.interceptors.InterceptorsController$BeforeInterceptor2</interceptor-class> + </action-interceptor> + </before-action> + <after-action> + <action-interceptor> + <interceptor-class>miniTests.interceptors.InterceptorsController$AfterInterceptor</interceptor-class> + </action-interceptor> + <action-interceptor> + <interceptor-class>miniTests.interceptors.InterceptorsController$AfterInterceptor2</interceptor-class> + </action-interceptor> + </after-action> + </global> + </pageflow-action-interceptors> + + <pageflow-handlers> + <forward-redirect-handler-class>pageFlowCore.forwards.Controller$Redirector</forward-redirect-handler-class> + </pageflow-handlers> + + <pageflow-config> + <multipart-handler>memory</multipart-handler> + <module-config-locators> + <module-config-locator> + <description>For /miniTests/moduleConfigLocator.</description> + <locator-class>moduleConfigLocator.Locator1</locator-class> + </module-config-locator> + </module-config-locators> + </pageflow-config> + + <jsp-tag-config> + <doctype>html4-loose</doctype> + <id-javascript>Legacy-JavaScript-Only</id-javascript> + </jsp-tag-config> + + <iterator-factories> + </iterator-factories> + +</netui-config> + + ]]></source> + </section> + <section> + <title>Related Topics</title> +<p>Class org.apache.beehive.netui.util.config.ConfigUtil</p> +<p>Interface org.apache.beehive.netui.pageflow.interceptor.ActionInterceptor</p> + </section> + </body> - <footer> - <legal>Java, J2EE, and JCP are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries.<br/> - © 2004, Apache Software Foundation - </legal> - </footer> </document>
