Author: ochikvina
Date: 2009-03-10 10:39:17 -0400 (Tue, 10 Mar 2009)
New Revision: 14147
Added:
branches/jbosstools-3.0.x/struts/docs/struts_tools_tutorial/en/master_output.xml
Log:
https://jira.jboss.org/jira/browse/JBDS-655 - adding master_output.xml;
Added: branches/jbosstools-3.0.x/struts/docs/struts_tools_tutorial/en/master_output.xml
===================================================================
--- branches/jbosstools-3.0.x/struts/docs/struts_tools_tutorial/en/master_output.xml
(rev 0)
+++
branches/jbosstools-3.0.x/struts/docs/struts_tools_tutorial/en/master_output.xml 2009-03-10
14:39:17 UTC (rev 14147)
@@ -0,0 +1,1340 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
+"http://www.docbook.org/xml/4.3/docbookx.dtd"
+
+[<!ENTITY introduction SYSTEM "modules/introduction.xml">
+<!ENTITY struts_application SYSTEM "modules/struts_application.xml">
+<!ENTITY generating_stub SYSTEM "modules/generating_stub.xml">
+<!ENTITY coding_files SYSTEM "modules/coding_files.xml">
+<!ENTITY compiling_and_running SYSTEM
"modules/compiling_and_running.xml">
+<!ENTITY struts_validation SYSTEM "modules/struts_validation.xml">
+<!ENTITY relevant_resources SYSTEM "modules/relevant_resources.xml">
+
+<!ENTITY seamlink "../../seam/html_single/index.html">
+<!ENTITY aslink "../../as/html_single/index.html">
+<!ENTITY esblink "../../esb_ref_guide/html_single/index.html">
+<!ENTITY gsglink "../../GettingStartedGuide/html_single/index.html">
+<!ENTITY hibernatelink "../../hibernatetools/html_single/index.html">
+<!ENTITY jbpmlink "../../jbpm/html_single/index.html">
+<!ENTITY jsflink "../../jsf/html_single/index.html">
+<!ENTITY jsfreflink "../../jsf_tools_ref_guide/html_single/index.html">
+<!ENTITY jsftutoriallink
"../../jsf_tools_tutorial/html_single/index.html">
+<!ENTITY strutsreflink
"../../struts_tools_ref_guide/html_single/index.html">
+<!ENTITY strutstutoriallink
"../../struts_tools_tutorial/html_single/index.html">
+
+]><book
xmlns:diffmk="http://diffmk.sf.net/ns/diff">
+
+ <bookinfo>
+ <title>Struts Tools Tutorial</title>
+
+
<author><firstname>Anatoly</firstname><surname>Fedosik</surname></author>
+
<author><firstname>Olga</firstname><surname>Chikvina</surname></author>
+
<author><firstname>Svetlana</firstname><surname>Mukhina</surname><email>smukhina(a)exadel.com</email></author>
+
+ <pubdate>April 2008</pubdate>
+ <copyright>
+ <year>2007</year>
+ <year><diffmk:wrapper
diffmk:change="changed">2009</diffmk:wrapper></year>
+ <holder><diffmk:wrapper diffmk:change="changed">JBoss,
a division of Red Hat</diffmk:wrapper></holder>
+ </copyright>
+ <releaseinfo><diffmk:wrapper diffmk:change="changed">
+ Version: 3.0.0.GA
+ </diffmk:wrapper></releaseinfo>
+
+<abstract>
+ <title></title>
+ <para>
+ <ulink
url="http://download.jboss.org/jbosstools/nightly-docs/en/struts_too...
version</ulink>
+ </para>
+</abstract>
+
+
+ </bookinfo>
+
+ <toc></toc>
+
+
+<chapter id="introduction"
xml:base="file:///home/ochikvina/WORK/for_compare/trunk/struts/docs/struts_tools_tutorial/en/modules/introduction.xml"
xreflabel="introduction">
+ <?dbhtml filename="introduction.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Eclipse</keyword>
+ <keyword>Java</keyword>
+ <keyword>JBoss</keyword>
+ </keywordset>
+ </chapterinfo>
+ <title>Introduction</title>
+ <para>The following chapters describe how to deal with classic/old style of
Struts development. We
+ recommend users to use <ulink
url="../../seam/html_single/index.html">JBoss Seam</ulink> to
+ simplify development, but until then you can read about classical Struts usage
here.</para>
+
+ <para>We are going to show you how to create a simple <emphasis>
+ <property moreinfo="none">Struts application</property>
+ </emphasis> using the JBoss Tools. The completed application will ask a user to
enter
+ a name and click a button. The resulting new page will display the familiar message,
+ "Hello <name>!"</para>
+ <para>This document will show you how to create such an application from the
beginning, along the
+ way demonstrating some of the powerful features of JBoss Tools. With the help of our
tutorial you will design the
+ application, generate stub code for the application, fill in the stub coding, compile
the
+ application, and finally run it all from inside the Eclipse.</para>
+
+ <section>
+ <title>Other relevant resources on the topic</title>
+
+ <para>All JBoss Developer Studio/JBoss Tools documentation you can find
<ulink
url="http://docs.jboss.org/tools/">here</ulink>.</p...
+ <para>The latest documentation builds are available <ulink
url="http://download.jboss.org/jbosstools/nightly-docs/">her...
+
+ </section>
+
+</chapter>
+
+
+<chapter id="struts_application"
xml:base="file:///home/ochikvina/WORK/for_compare/trunk/struts/docs/struts_tools_tutorial/en/modules/struts_application.xml"
xreflabel="struts_application">
+ <?dbhtml filename="struts_application.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Struts</keyword>
+ <keyword>Struts Application</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Creating a Simple Struts Application</title>
+
+ <para>Firstly, we assume that you have already launched Eclipse with JBoss
Tools installed and
+ also that the <property moreinfo="none">Web Development
perspective</property> is the current perspective. (If not, make it
+ active by selecting <emphasis>
+ <property moreinfo="none">Window > Open Perspective
> Other > Web
+ Development</property>
+ </emphasis> from the menu bar.)</para>
+
+ <section id="StartingUp">
+ <title>Starting Up</title>
+ <para>We are first going to create a new project for the
application.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Go to the menu bar and select <emphasis>
+ <property moreinfo="none">File > New >
Project...</property>
+ </emphasis>.</para>
+ </listitem>
+ <listitem>
+ <para>Select <emphasis>
+ <property moreinfo="none">JBoss Tools Web >
Struts > Struts Project</property>
+ </emphasis> in the New Project dialog box</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Next </property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Enter "StrutsHello" as the project
name</para>
+ </listitem>
+ <listitem>
+ <para>Leave everything else as is, and click <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Next</property>
+ </emphasis> again</para>
+ </listitem>
+ <listitem>
+ <para>Make sure that <emphasis>
+ <property
moreinfo="none">struts-bean.tld</property>
+ </emphasis>, <emphasis>
+ <property
moreinfo="none">struts-html.tld</property>
+ </emphasis>, and <emphasis>
+ <property
moreinfo="none">struts-logic.tld</property>
+ </emphasis> are checked in the list of included tag libraries and
then click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>A "StrutsHello" node should appear in the upper-left
Package
+ Explorer view.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Click the plus sign next to <emphasis>
+ <property
moreinfo="none">StrutsHello</property>
+ </emphasis> to reveal the child nodes</para>
+ </listitem>
+ <listitem>
+ <para>Click the plus sign next to <emphasis>
+ <property
moreinfo="none">WebContent</property>
+ </emphasis> under StrutsHello</para>
+ </listitem>
+ <listitem>
+ <para>Click the plus sign next to <emphasis>
+ <property moreinfo="none">WEB-INF</property>
+ </emphasis> under WebContent</para>
+ </listitem>
+ <listitem>
+ <para>Then, double-click on the <emphasis>
+ <property
moreinfo="none">struts-config.xml</property>
+ </emphasis> node to display a diagram of the Struts application
configuration
+ file in the editing area</para>
+ </listitem>
+ </itemizedlist>
+ <para>At this point, its empty except for the background grid
lines.</para>
+ </section>
+
+ <section id="CreatingtheApplicationComponents">
+ <?dbhtml filename="CreatingtheApplicationComponents.html"?>
+ <title>Creating the Application Components</title>
+ <para>Now, we will design the application by creating the individual
components as
+ placeholders first. (We dont have to complete all of the details inside the
components
+ until afterwards.)</para>
+ <section id="CreatingJSPPagePlaceholders">
+ <title>Creating JSP Page Placeholders</title>
+ <para>Next, let's create and place two JSP pages. We will not write
any code
+ for the files, but only create them as placeholders so that we can create
links to
+ them in the diagram. We will write the code a little bit
later.</para>
+ <section id="CreatingthePagePlaceholders">
+ <title>Creating the Page Placeholders</title>
+ <itemizedlist>
+ <listitem>
+ <para>Bring the Web Projects view to the front of the
Package Explorer view
+ by selecting the <emphasis>
+ <property moreinfo="none">Web
Projects</property>
+ </emphasis> tab next to that tab.</para>
+ </listitem>
+ <listitem>
+ <para>Right-click the <emphasis>
+ <property moreinfo="none">StrutsHello
> WEB-ROOT (WebContent)</property>
+ </emphasis> folder in the Web Projects view and select
<emphasis>
+ <property moreinfo="none">New >
Folder...</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Enter <emphasis>
+ <property
moreinfo="none">pages</property>
+ </emphasis> for a folder name and click
<emphasis>
+ <property
moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+
+ <listitem>
+ <para>We will keep our presentation files in this
folder</para>
+ </listitem>
+
+ <listitem>
+ <para>Right-click the pages folder and select
<emphasis>
+ <property moreinfo="none">New >
Fila > JSP...</property>
+ </emphasis>
+ </para>
+ </listitem>
+ <listitem>
+ <para>For Name type in <emphasis>
+ <property
moreinfo="none">inputname</property>
+ </emphasis> (the JSP extension will be automatically
added to the file),
+ for Template select <emphasis>
+ <property
moreinfo="none">StrutsForm</property>
+ </emphasis> and then click on the <emphasis>
+ <property
moreinfo="none">Finish</property>
+ </emphasis> button</para>
+ </listitem>
+ <listitem>
+ <para>Right-click the pages folder again and select
<emphasis>
+ <property moreinfo="none">New >
File > JSP...</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>For Name type in <emphasis>
+ <property
moreinfo="none">greeting</property>
+ </emphasis>, for Template leave as Blank, and then
click on the <emphasis>
+ <property
moreinfo="none">Finish</property>
+ </emphasis> button</para>
+ </listitem>
+ </itemizedlist>
+ <para>Just leave these files as is for now.</para>
+ </section>
+ <section id="PlacingthePagePlaceholders">
+ <title>Placing the Page Placeholders</title>
+ <para>Lets now place the two pages just created on the
diagram.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Click on the <emphasis>
+ <property
moreinfo="none">struts-config.xml</property>
+ </emphasis> tab in the Editing area to bring the
diagram to the
+ front</para>
+ </listitem>
+ <listitem>
+ <para>Click on the <emphasis>
+ <property
moreinfo="none">inputname.jsp</property>
+ </emphasis> page in the Web Projects view, drag it onto
the diagram, and
+ drop it</para>
+ </listitem>
+ <listitem><para>Click on the <emphasis>
+ <property
moreinfo="none">greeting.jsp</property>
+ </emphasis> page in the Web Projects view, drag it onto the
diagram, and
+ drop it to the right of the <emphasis>
+ <property
moreinfo="none">/pages/inputname.jsp</property>
+ </emphasis> icon with some extra
space</para></listitem>
+ </itemizedlist>
+ <para>You should now have two JSP pages in the
diagram.</para>
+ </section>
+ </section>
+ <section id="CreatinganActionMappings">
+ <title>Creating an Action Mappings</title>
+ <para>Using a context menu on the diagram, we are next going to create
an Action
+ mapping.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Right-click between the two icons and select
<emphasis>
+ <property moreinfo="none">Add >
Action</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Enter the following values:</para>
+ </listitem>
+ </itemizedlist>
+ <table>
+ <title>Action values</title>
+ <tgroup cols="2">
+ <tbody>
+ <row>
+ <entry>path</entry>
+ <entry>/greeting</entry>
+ </row>
+ <row>
+ <entry>name</entry>
+ <entry>GetNameForm</entry>
+ </row>
+ <row>
+ <entry>scope</entry>
+ <entry>request</entry>
+ </row>
+ <row>
+ <entry>type</entry>
+ <entry>sample.GreetingAction</entry>
+ </row>
+ <row>
+ <entry>validate</entry>
+ <entry><leave blank></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ <para>("GetNameForm" is the name for a form bean that we will
create
+ later.)</para>
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property
moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+
+ <para>The <emphasis>
+ <property moreinfo="none">/greeting</property>
+ </emphasis> action should appear in four places, in the diagram,
under the
+ action-mappings node, under the struts-config.xml node in Tree view, in
Web Projects
+ view and in the Outline view. Also, note the asterisk to the right of the
name,
+ struts-config.xml, in the Outline view showing that the file has been
changed, but
+ not saved to disk.</para>
+ </section>
+ <section id="CreatingaLink">
+ <title>Creating a Link</title>
+ <para>Let's now create a link from the inputname.jsp page to the
action.</para>
+ <itemizedlist>
+ <listitem>
+ <para>On the left-hand side of the diagram in the column of
icons, click on this
+ icon:</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Create New Connection Icon</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_application/struts_application_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>In the connect-the-components mode you are in now, click
on the <emphasis>
+ <property
moreinfo="none">/pages/inputname.jsp</property>
+ </emphasis> icon in the diagram and then click on the
<emphasis>
+ <property
moreinfo="none">/greeting</property>
+ </emphasis> action</para>
+ </listitem>
+ </itemizedlist>
+ <para>A link will be created from the page to the action.</para>
+ </section>
+ <section id="CreatingaForward">
+ <title>Creating a Forward</title>
+ <para>Next, we are going to create a forward for the
action.</para>
+ <itemizedlist>
+ <listitem>
+ <para>On the left-hand side of the diagram in the column of
icons, click on this
+ icon, again:</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Create New Connection Icon</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_application/struts_application_1.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Click on the <emphasis>
+ <property
moreinfo="none">/greeting</property>
+ </emphasis> action icon in the diagram and then click on
the <emphasis>
+ <property
moreinfo="none">pages/greeting.jsp</property>
+ </emphasis> icon</para>
+ </listitem>
+ <listitem>
+ <para>That's it. A link will be drawn from the actions new
greeting
+ forward to the greeting.jsp JSP page. Note that the forwards name
will be
+ set based on the name of the target JSP file name. If you
don't
+ like it, you can easily change it</para>
+ </listitem>
+ <listitem>
+ <para>Select the <emphasis>
+ <property
moreinfo="none">Tree</property>
+ </emphasis> tab at the bottom of the editor window (between
Diagram and
+ Source)</para>
+ </listitem>
+ <listitem>
+ <para>Expand the <emphasis>
+ <property
moreinfo="none">struts-config.xml/action-mappings//greeting</property>
+ </emphasis> node and then select the greeting
forward</para>
+ </listitem>
+ <listitem>
+ <para>In the Properties Editor to the right, change the text
to
+ "sayHello" in the Name field</para>
+ </listitem>
+ <listitem>
+ <para>Select the <emphasis>
+ <property
moreinfo="none">Diagram</property>
+ </emphasis> tab at the bottom of the editor window and see
how the diagram
+ is also updated to reflect the change</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section id="CreatingaGlobalForward">
+ <title>Creating a Global Forward</title>
+ <para>One last component that we need to create in the diagram is a
global forward.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Somewhere in the top-left corner of diagram, right-click
and select <emphasis>
+ <property moreinfo="none"> Add >
Global Forward...</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Enter <emphasis>
+ <property
moreinfo="none">getName</property>
+ </emphasis> in the Name field</para>
+ </listitem>
+ <listitem>
+ <para>Select the <emphasis>
+ <property
moreinfo="none">Change...</property>
+ </emphasis>button for Path</para>
+ </listitem>
+ <listitem>
+ <para>In the Edit Path window, switch to the <emphasis>
+ <property
moreinfo="none">Pages</property>
+ </emphasis> tab</para>
+ </listitem>
+ <listitem>
+ <para>Expand the <emphasis>
+ <property moreinfo="none">StrutsHello
> WEB-ROOT (WebContent) > pages</property>
+ </emphasis> node and then select the inputname.jsp
page</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property
moreinfo="none">Ok</property>
+ </emphasis>.</para>
+ </listitem>
+ <listitem>
+ <para>Leave the rest of the fields blank and click
<emphasis>
+ <property
moreinfo="none">OK</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>A forward object now appears on the diagram and also in the
global-forwards folder
+ in the Outline view.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Tidy up the diagram, by clicking and dragging around each
icon, so that
+ the diagram looks something like this:</para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>Diagram View</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_application/struts_application_2.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="CreatingaFormBean">
+ <title>Creating a Form Bean</title>
+ <para>One last thing that we need to do is to create a form
bean.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Switch to the Tree viewer in the editor for the
struts-config.xml file, by
+ selecting the <emphasis>
+ <property
moreinfo="none">Tree</property>
+ </emphasis> tab at the bottom of the editor
window</para>
+ </listitem>
+ <listitem>
+ <para>Right-click <emphasis>
+ <property moreinfo="none">struts-config.xml
> form-beans</property>
+ </emphasis> and select Create Form Bean</para>
+ </listitem>
+ <listitem>
+ <para>Enter <emphasis>
+ <property
moreinfo="none">GetNameForm</property>
+ </emphasis> in the name field and <emphasis>
+ <property
moreinfo="none">sample.GetNameForm</property>
+ </emphasis> for type</para>
+ </listitem>
+ <listitem>
+ <para>Click <emphasis>
+ <property
moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>To save your changes to struts-config.xml, select
<emphasis>
+ <property moreinfo="none">File >
Save</property>
+ </emphasis> from the menu bar</para>
+ </listitem>
+ </itemizedlist>
+ <para>Note the disappearance of the asterisk next to the name,
struts-config.xml.</para>
+ </section>
+ </section>
+</chapter>
+
+<chapter id="generating_stub"
xml:base="file:///home/ochikvina/WORK/for_compare/trunk/struts/docs/struts_tools_tutorial/en/modules/generating_stub.xml"
xreflabel="generating_stub">
+ <?dbhtml filename="generating_stub.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Struts</keyword>
+ <keyword>Struts Application</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Generating Stub Coding</title>
+ <para>We are done with designing the application through the diagram. Now
we need to write
+ code for the action component. We also need to write an action class for the
<emphasis>
+ <property moreinfo="none">/greeting</property>
+ </emphasis> mapping along with a FormBean. To aid in the coding phase,
JBoss Developer
+ Studio can generate Java class stubs for all of the components shown in the
diagram.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Switch back to the diagram, by selecting the
<emphasis>
+ <property moreinfo="none">Diagram</property>
+ </emphasis> tab at the bottom of the editor window</para>
+ </listitem>
+ <listitem>
+ <para>Right-click a blank space in the diagram and select
<emphasis>
+ <property moreinfo="none">Generate Java
Code</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Leave everything as is in the dialog box and click
<emphasis>
+ <property moreinfo="none">Generate</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>You should see a screen that says:</para>
+ <para>Generated classes: 2</para>
+ <para>Actions: 1</para>
+ <para>Form beans: 1</para>
+ <itemizedlist>
+ <listitem>
+ <para>Click <emphasis>
+ <property moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ </itemizedlist>
+ <para>The Java files will be generated in a <emphasis>
+ <property moreinfo="none">JavaSource >
sample</property>
+ </emphasis> folder that you can see in the Package Explorer view under the
+ "StrutsHello" node. One Action stub and one FormBean stub will
have
+ been generated.</para>
+ </chapter>
+
+<chapter id="coding_files"
xml:base="file:///home/ochikvina/WORK/for_compare/trunk/struts/docs/struts_tools_tutorial/en/modules/coding_files.xml"
xreflabel="coding_files">
+ <?dbhtml filename="coding_files.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Struts</keyword>
+ <keyword>Struts Application</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Coding the Various Files</title>
+ <para>We will now code both the Java stub classes just generated, the JSP
files left in as
+ placeholders from previous steps, and a new start JSP page we will have to
create.</para>
+ <section id="JavaStubClasses">
+ <title>Java Stub Classes</title>
+ <itemizedlist>
+ <listitem>
+ <para>To finish the two Java classes, switch to the
<emphasis>
+ <property moreinfo="none">Package
Explorer</property>
+ </emphasis> view and expand the <emphasis>
+ <property moreinfo="none">JavaSource >
sample</property>
+ </emphasis> folder</para>
+ </listitem>
+ </itemizedlist>
+ <section id="GetNameForm.java">
+ <title>GetNameForm.java</title>
+ <itemizedlist>
+ <listitem>
+ <para>Double-click <emphasis>
+ <property
moreinfo="none">GetNameForm.java</property>
+ </emphasis> for editing</para>
+ </listitem>
+
+ <listitem>
+ <para>You are looking at a Java stub class that was
generated by JBoss
+ Developer Studio. Now we are going to edit the
file</para>
+ </listitem>
+
+ <listitem>
+ <para>Add the following attributes at the beginning of the
class:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific"
role="JAVA"><![CDATA[private String name = "";
+ private String greetName = "";
+]]></programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>Inside the reset method, delete the TO DO and throw
lines and
+ add:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific"
role="JAVA"><![CDATA[this.name = "";
+ this.greetName = "";
+]]></programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>Inside the validate method, delete the TO DO and
throw lines and
+ add:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific"
role="JAVA"><![CDATA[ActionErrors errors = new ActionErrors();
+ return errors;
+]]></programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>Right-click and select <emphasis>
+ <property moreinfo="none">Source >
Generate Getters and Setters...</property>
+ </emphasis>from the context menu</para>
+ </listitem>
+ <listitem>
+ <para>In the dialog box, check the check boxes for name and
greetName,
+ select First method for Insertion point, and click on the
<emphasis>
+ <property
moreinfo="none">OK</property>
+ </emphasis> button</para>
+ </listitem>
+ </itemizedlist>
+ <para>The final GetNameForm.java file should look like
this:</para>
+ <programlisting format="linespecific"
role="JAVA"><![CDATA[package sample;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionMapping;
+
+public class GetNameForm extends org.apache.struts.action.ActionForm
+{
+
+ private String name = "";
+ private String greetName = "";
+
+ public String getName()
+ {
+ return name;
+ }
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public String getGreetName()
+ {
+ return greetName;
+ }
+
+ public void setGreetName(String greetName)
+ {
+ this.greetName = greetName;
+ }
+
+ public GetNameForm()
+ {
+ }
+
+ public void reset(ActionMapping actionMapping, HttpServletRequest request)
+ {
+ this.name = "";
+ this.greetName = "";
+ }
+
+ public ActionErrors validate(ActionMapping actionMapping,
+ HttpServletRequest request)
+ {
+ ActionErrors errors = new ActionErrors();
+ return errors;
+ }
+}
+]]></programlisting>
+
+ <itemizedlist>
+ <listitem>
+ <para>Save the file</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ <section id="GreetingAction.java">
+ <title>GreetingAction.java</title>
+ <itemizedlist>
+ <listitem>
+ <para>Open GreetingAction.java for editing</para>
+ </listitem>
+ <listitem>
+ <para>Inside the execute method, delete the TO DO lines and
add the
+ following:</para>
+ </listitem>
+ </itemizedlist>
+
+ <programlisting format="linespecific"
role="JAVA"><![CDATA[String name = ((GetNameForm)form).getName();
+String greeting = "Hello, "+name+"!";
+((GetNameForm)form).setName(greeting);
+return mapping.findForward(FORWARD_sayHello);
+]]></programlisting>
+
+ <para>The final version of GreetingAction.java should look like
this:</para>
+
+ <programlisting format="linespecific"
role="JAVA"><![CDATA[package sample;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import org.apache.struts.action.ActionForm;
+import org.apache.struts.action.ActionForward;
+import org.apache.struts.action.ActionMapping;
+
+public class GreetingAction extends org.apache.struts.action.Action
+{
+
+ // Global Forwards
+ public static final String GLOBAL_FORWARD_getName = "getName";
+
+ // Local Forwards
+ public static final String FORWARD_sayHello = "sayHello";
+
+ public GreetingAction()
+ {
+ }
+ public ActionForward execute(ActionMapping mapping, ActionForm form,
+ HttpServletRequest request, HttpServletResponse response) throws Exception
+ {
+ String name = ((GetNameForm)form).getName();
+ String greeting = "Hello, "+name+"!";
+ ((GetNameForm)form).setName(greeting);
+ return mapping.findForward(FORWARD_sayHello);
+ }
+}
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Save the file</para>
+ </listitem>
+ <listitem>
+ <para>Close the editors for the two Java
files</para>
+ </listitem>
+ </itemizedlist>
+ <para>The last thing left to do is to code the JSP files whose
editors should still
+ be open from having been created as placeholders.</para>
+ </section>
+ </section>
+ <section id="JSPPages">
+ <title>JSP Pages</title>
+ <section id="inputname.jsp">
+ <title>inputname.jsp</title>
+ <para>In this page, the user will enter any name and click the
<emphasis>
+ <property
moreinfo="none">submit</property>
+ </emphasis> button. Then, the greeting action will be called
through the form.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Click on the <emphasis>
+ <property
moreinfo="none">inputname.jsp</property>
+ </emphasis> tab in the Editing area to bring its editor
forward</para>
+ </listitem>
+ <listitem>
+ <para>In the Web Projects view, expand <emphasis>
+ <property moreinfo="none">StrutsHello
> Configuration > default
+ > struts-config.xml >
action-mappings</property>
+ </emphasis> and select <emphasis>
+ <property
moreinfo="none">/greeting</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Drag it and drop it between the quotes for the
<emphasis role="italic">
+ <property
moreinfo="none">"action"</property>
+ </emphasis> attribute to the <emphasis
role="bold">
+ <property
moreinfo="none"><html:form></property>
+ </emphasis> element in the Source pane of the
editor</para>
+ </listitem>
+ <listitem>
+ <para>Then type this text on a new line just below this
line:</para>
+ <programlisting format="linespecific"
role="XML"><![CDATA[Input name:
+ ]]></programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Select the <emphasis>
+ <property
moreinfo="none">Visual</property>
+ </emphasis> pane of the editor</para>
+ </listitem>
+ <listitem>
+ <para>Then, in the JBoss Tools Palette, expand the
<emphasis>
+ <property moreinfo="none">Struts
Form</property>
+ </emphasis> library, select <emphasis>
+ <property
moreinfo="none">text</property>
+ </emphasis>, and drag it onto the box
+ <note>
+ <title>Note:</title>
+ <para>By default there are only four groups on the
JBoss Tools
+ Palette. If you wish to make some group visible click
the <emphasis>
+ <property
moreinfo="none">Show/Hide</property>
+ </emphasis> button on the top of palette and in
the prompted
+ dialog check the group (or groups) you want to be
shown.</para>
+ </note>
+ </para>
+ </listitem>
+ </itemizedlist>
+ <figure float="0">
+ <title>JBoss Tools Palette</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_application/struts_application_3.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>In the Insert Tag dialog box, type in name for
property and select <emphasis>
+ <property
moreinfo="none">Finish</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>In the StrutsForm library in the JBoss Tools Palette,
select <emphasis>
+ <property
moreinfo="none">submit</property>
+ </emphasis>, and drag it to right after the text box in
the Visual pane
+ of the editor</para>
+ </listitem>
+ <listitem>
+ <para>Right-click the <emphasis>
+ <property
moreinfo="none">submit</property>
+ </emphasis> button and select <emphasis
role="bold">
+ <property
moreinfo="none"><html:submit></property>
+ </emphasis> Attributes from the context
menu</para>
+ </listitem>
+ <listitem>
+ <para>In the Attributes dialog box, select the
<emphasis>
+ <property
moreinfo="none">value</property>
+ </emphasis> field and type in "Say Hello!"
for its
+ value</para>
+ </listitem>
+ </itemizedlist>
+ <para>After tidying the page source, the Editor window for the file
should look
+ something like this:</para>
+ <figure float="0">
+ <title>Editor Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_application/struts_application_4.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="greeting.jsp">
+ <title>greeting.jsp</title>
+ <para>Next, we will fill in the result page.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Click on the <emphasis>
+ <property
moreinfo="none">greeting.jsp</property>
+ </emphasis> tab in the Editing area to bring its editor
forward</para>
+ </listitem>
+ <listitem>
+ <para>Type in the following code:</para>
+ </listitem>
+ </itemizedlist>
+ <programlisting format="linespecific"
role="XML"><![CDATA[<html>
+<head>
+ <title>Greeting</title>
+</head>
+ <body>
+ <p>
+ </p>
+ </body>
+</html>
+]]></programlisting>
+
+ <para>To complete editing of this file, we will use macros from the
JBoss Tools
+ Palette. This palette is a view that should be available to the right
of the
+ editing area.</para>
+ <itemizedlist>
+ <listitem>
+ <para>Click on the <emphasis>
+ <property moreinfo="none">Struts
Common</property>
+ </emphasis> folder in the JBoss Tools Palette to open
it</para>
+ </listitem>
+ <listitem>
+ <para>Position the cursor at the beginning of the
greeting.jsp file in the
+ Source pane and then click on bean taglib in the JBoss Tools
+ Palette</para>
+ </listitem>
+ </itemizedlist>
+ <para>This will insert the following line at the top of the
file:</para>
+ <programlisting format="linespecific"
role="JAVA"><![CDATA[
+<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>Click on the <emphasis>
+ <property moreinfo="none">Struts
Bean</property>
+ </emphasis> folder in the JBoss Tools Palette to open
it</para>
+ </listitem>
+ <listitem>
+ <para>Position the cursor inside the <emphasis
role="bold">
+ <property
moreinfo="none"><p></property>
+ </emphasis> element</para>
+ </listitem>
+ <listitem>
+ <para>Click on write in the JBoss Tools
Palette</para>
+ </listitem>
+ <listitem>
+ <para>Type in "GetNameForm" for the <emphasis
role="italic">
+ <property
moreinfo="none">"name"</property>
+ </emphasis> attribute and add a <emphasis
role="italic">
+ <property
moreinfo="none">"property"</property>
+ </emphasis> attribute with "greetName" as
its
+ value</para>
+ </listitem>
+ </itemizedlist>
+ <para>The editor should now look like this:</para>
+ <figure float="0">
+ <title>Editor Window</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_application/struts_application_5.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ </section>
+ <section id="index.jsp">
+ <title>index.jsp</title>
+ <para>Finally, we will need to create and edit an index.jsp page.
This page will use
+ a Struts forward to simply redirect us to the getName global
forward.</para>
+ <itemizedlist>
+ <listitem>
+ <para>In the Web Projects view, right-click on
<emphasis>
+ <property moreinfo="none">StrutsHello
> WEB-ROOT(WebContent)</property>
+ </emphasis> node and select <emphasis>
+ <property moreinfo="none">New >
File > JSP..</property>
+ </emphasis></para>
+ </listitem>
+ <listitem>
+ <para>Type index for Name and click on the
<emphasis>
+ <property
moreinfo="none">Finish</property>
+ </emphasis> button</para>
+ </listitem>
+ <listitem>
+ <para>On the JBoss Tools Palette, select the
<emphasis>
+ <property moreinfo="none">Struts
Common</property>
+ </emphasis> folder of macros by clicking on it in the
palette</para>
+ </listitem>
+ <listitem>
+ <para>Click on the logic taglib icon</para>
+ </listitem>
+ <listitem>
+ <para>Press the <emphasis>
+ <property
moreinfo="none">Enter</property>
+ </emphasis> key in the editor to go to the next
line</para>
+ </listitem>
+ <listitem>
+ <para>Back on the palette, select the <emphasis>
+ <property moreinfo="none">Struts
Logic</property>
+ </emphasis> folder of macros</para>
+ </listitem>
+ <listitem>
+ <para>Click on redirect</para>
+ </listitem>
+ <listitem>
+ <para>Delete the ending tag, put a forward slash in front
of the closing
+ angle bracket, and type "forward=getName" in front
of
+ the slash</para>
+ </listitem>
+ </itemizedlist>
+ <para>The finished code for the page is shown below:</para>
+ <programlisting format="linespecific"
role="JAVA"><![CDATA[<%@ taglib
uri="/WEB-INF/struts-logic.tld" prefix="logic" %>
+<logic:redirect forward="getName"/>
+]]></programlisting>
+ <itemizedlist>
+ <listitem>
+ <para>To save all the edits to files, select
<emphasis>
+ <property
moreinfo="none">File>Save All</property>
+ </emphasis> from the menu bar</para>
+ </listitem>
+ </itemizedlist>
+ </section>
+ </section>
+ </chapter>
+
+<chapter id="compiling_and_running"
xml:base="file:///home/ochikvina/WORK/for_compare/trunk/struts/docs/struts_tools_tutorial/en/modules/compiling_and_running.xml"
xreflabel="compiling_and_running">
+ <?dbhtml filename="compiling_and_running.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Struts</keyword>
+ <keyword>Struts Application</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Compiling the Classes and Running the Application</title>
+
+ <para>As this is the Eclipse environment, no explicit compilation step is
required. By
+ default, Eclipse compiles as you go.</para>
+
+ <para>Thus at this point everything is ready for running our application
without having to leave JBoss
+ Developer Studio by using the JBoss Application Server engine that comes with
the JBoss
+ Developer Studio. For controlling JBoss AS within JBoss Developer Studio,
there is JBoss
+ Server view.</para>
+ <figure float="0">
+ <title>JBoss Server Panel</title>
+ <mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_application/struts_application_6.png"></imagedata>
+ </imageobject>
+ </mediaobject>
+ </figure>
+ <itemizedlist>
+ <listitem>
+ <para>Start up JBoss AS by clicking on the icon in JBoss Server
view. (If JBoss AS
+ is already running, stop it by clicking on the red icon and then
start it again.
+ Remember, the Struts run-time requires restarting the servlet engine
when any
+ changes have been made.)</para>
+ </listitem>
+ <listitem>
+ <para>After the messages in the Console tabbed view stop scrolling,
JBoss AS is
+ available. At this point, right-click on the getName global forward
in the
+ struts-config.xml diagram view and select Run on
Server.</para>
+ </listitem>
+ </itemizedlist>
+ <para>The browser should appear with the application started.</para>
+ </chapter>
+
+<chapter id="struts_validation"
xml:base="file:///home/ochikvina/WORK/for_compare/trunk/struts/docs/struts_tools_tutorial/en/modules/struts_validation.xml"
xreflabel="struts_validation">
+ <?dbhtml filename="struts_validation.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Developer Studio</keyword>
+ <keyword>Struts</keyword>
+ <keyword>Struts Validation</keyword>
+ </keywordset>
+ </chapterinfo>
+<title>Struts Validation Examples</title>
+
+<para><property moreinfo="none">Validation</property> of
input is an important part of any Web application. All Apache Jakarta frameworks,
+including Struts, can use a common Jakarta Validation Framework for streamlining this
aspect of Web
+application development. The Validation Framework allows you to define validation rules
and then apply these rules on the client-side or the server-side.</para>
+
+ <para>JBoss Developer Studio makes using the <property
moreinfo="none">Validation Framework</property> in Struts even easier
with the help of a specialized editor for the XML files that controls validation in a
project. In this document, we'll show you how this all works by creating some simple
client-side validation and server-side validation examples.</para>
+
+<section id="StartingPoint">
+<?dbhtml filename="StartingPoint.html"?>
+<title>Starting Point</title>
+<para>The example assumes that you have already created our sample
"StrutsHello" application from the
+Getting Started Guide for Creating a Struts Application. You should have the JBoss
Developer Studio perspective
+ open on this StrutsHello project.</para>
+</section>
+
+<section id="DefiningTheValidationRule">
+<?dbhtml filename="DefiningTheValidationRule.html"?>
+<title>Defining the Validation Rule</title>
+<para>In these steps you will set up the validation that can be used for either
client-side or
+server side validation. You need to enable validation as a part of the project, define an
error message, and tie it into an appropriate part of the application.</para>
+
+<itemizedlist>
+<listitem><para>Right-click on a "plug-ins" node under the
<emphasis><property moreinfo="none">StrutsHello >
Configuration > default >
struts-config.xml</property></emphasis> node in the Web Projects view and
select <emphasis><property moreinfo="none">Create Special Plugin
> Validators</property></emphasis> from the context
menu</para></listitem>
+<listitem><para>Further down in the Web Projects view, right-click on the
+<emphasis><property moreinfo="none">StrutsHello >
ResourceBundles</property></emphasis> node and select
<emphasis><property moreinfo="none"> New > Properties
File...</property></emphasis>from the context
menu</para></listitem>
+<listitem><para>In the dialog box, click on the <emphasis><property
moreinfo="none">Browse...</property></emphasis>button next to the
Folder field, expand the
+ JavaSource folder in this next dialog box, select the sample subfolder, and click on
the <emphasis><property
moreinfo="none">OK</property></emphasis>
button</para></listitem>
+ <listitem><para>Back in the first dialog box, type in
"applResources" for the Name field and click on the <emphasis><property
moreinfo="none">Finish</property></emphasis>
button</para></listitem>
+<listitem><para>Right-click on a newly created file and select
<emphasis><property moreinfo="none">Add > Default Error
Messages</property></emphasis>
+ from the context menu</para></listitem>
+
+<listitem><para>Drag up the sample.applResources icon until you can drop it
on the resources folder under struts-config.xml</para></listitem>
+<listitem><para>Select<emphasis><property
moreinfo="none"> File > Save </property></emphasis>All
from the menu bar</para></listitem>
+<listitem><para>Select validation.xml under the <emphasis><property
moreinfo="none">StrutsHello >
Validation</property></emphasis> node and double-click it to open it with the
JBoss Tools XML Editor</para></listitem>
+<listitem><para>Here you must create a
Formset.</para></listitem>
+<listitem><para>In the validation.xml file editor click the button
<emphasis><property moreinfo="none">Create
Formset</property></emphasis> on the panel <emphasis><property
moreinfo="none">Formsets</property></emphasis></para></listitem>
+<listitem><para>In the dialog <emphasis><property
moreinfo="none">Add Formset</property></emphasis> fill the fields
<emphasis><property
moreinfo="none">Language</property></emphasis> and
<emphasis><property
moreinfo="none">Country</property></emphasis> or just leave them
empty to create a default formset. Click <emphasis><property
moreinfo="none">OK</property></emphasis></para></listitem>
+</itemizedlist>
+<figure float="0">
+ <title>Create Formset</title>
+<mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_validation/struts_validation.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<itemizedlist>
+<listitem><para>Expand the "form-beans" node under the
<emphasis><property moreinfo="none">StrutsHello >
Configuration > default > struts-config.xml
node.</property></emphasis> Then, drag the form bean "GetNameForm"
and drop it onto a formset in the <property
moreinfo="none">XML</property> Editor</para></listitem>
+<listitem><para>In the Validation Editor, expand the formset node,
right-click GetNameForm, and select <emphasis><property
moreinfo="none">Create Field...</property></emphasis> from the
context menu</para></listitem>
+<listitem><para>Enter a name for Property in the dialog box. A new property
will be created:</para></listitem>
+</itemizedlist>
+<figure float="0">
+ <title>New Property Is Added</title>
+<mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_validation/struts_validation_2.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<itemizedlist>
+<listitem><para>In the Properties view for the name field to the right of the
"tree" for the validation.xml file, click on the <emphasis><property
moreinfo="none">Change...</property></emphasis>button next to the
Depends entry field</para></listitem>
+<listitem><para>In the displayed double list, select
<emphasis><property
moreinfo="none">required</property></emphasis> from the left list
and then click <emphasis><property
moreinfo="none">Add</property></emphasis></para></listitem>
+ <listitem><para>Click <emphasis><property
moreinfo="none">Ok</property></emphasis></para></listitem>
+<listitem><para>Right-click name and select <emphasis><property
moreinfo="none">Add Arg...</property></emphasis> from the context
menu</para></listitem>
+<listitem><para>In the Add Arg dialog box, click on the
<emphasis><property
moreinfo="none">Change...</property></emphasis>button next to the
<emphasis><property
moreinfo="none">Key</property></emphasis>
field</para></listitem>
+ <listitem><para>In the Key dialog box that appears now, click on the
<emphasis><property
moreinfo="none">Add</property></emphasis>
button</para></listitem>
+ <listitem><para>Enter "name.required" in the Name field, and
enter a person's name in the Value field</para></listitem>
+ <listitem><para>Click <emphasis><property
moreinfo="none">Finish</property></emphasis>, then
<emphasis><property
moreinfo="none">Ok</property></emphasis>, and then
<emphasis><property
moreinfo="none">Ok</property></emphasis>
again</para></listitem>
+<listitem><para>Select <emphasis><property
moreinfo="none">File > Save All</property></emphasis> from
the menu bar</para></listitem>
+</itemizedlist>
+</section>
+
+<section id="Client-SideValidation">
+<?dbhtml filename="Client-SideValidation.html"?>
+<title>Client-Side Validation</title>
+<para>Client-side <property
moreinfo="none">validation</property> uses a scripting language (like
JavaScript) running in the client browser to actually do the <property
moreinfo="none">validation</property>. In a Struts application using
the <property moreinfo="none">Validation</property> Framework,
however, you don't actually have to do any of the script coding. The <property
moreinfo="none">Validation</property> Framework handles
this.</para>
+<para>To see how this works in our application, you'll just need to make a
couple of modifications to one of the JSP files.</para>
+<itemizedlist>
+<listitem><para>Double-click inputname.jsp under <emphasis><property
moreinfo="none">StrutsHello > WEB-ROOT(WebContent) >
pages</property></emphasis> to open it for
editing</para></listitem>
+<listitem><para>Find the tag near the top and hit Return to make a new line
under it</para></listitem>
+ <listitem><para>In the JBoss Tools Palette view to the right, open the
Struts HTML folder and click on the javascript tag</para></listitem>
+<listitem><para>Back in the editor, just in front of the closing slash for
this inserted tag, hit Ctrl+Space and select "formName" from the prompting
menu</para></listitem>
+<listitem><para>Over in the Web Projects view, select GetNameForm under the
<emphasis><property moreinfo="none">StrutsHello >
Configuration > default > struts-config.xml >
form-beans</property></emphasis> node, drag it, and drop it between the quotes
in the editor</para></listitem>
+<listitem><para>Modify the <emphasis role="bold"><property
moreinfo="none"><html:form></property></emphasis>
tag by inserting this attribute:</para></listitem>
+</itemizedlist>
+<programlisting format="linespecific"
role="XML"><![CDATA[onsubmit="return validateGetNameForm(this)"
+]]></programlisting>
+<para></para>
+<para>The file should now look like this:</para>
+<programlisting format="linespecific" role="XML"><![CDATA[
+<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
+<html:html>
+<head>
+ <title>Input name</title>
+ <html:javascript formName="GetNameForm"/>
+</head>
+<body>
+ <html:form action="/greeting.do" onsubmit="return
+ <para>validateGetNameForm(this)"></para>
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><b>Input name:</b></td>
+ </tr>
+ <tr>
+ <td>
+ <html:text property="name" />
+ <html:submit value=" Say Hello! " />
+ </td>
+ </tr>
+ </table>
+ </html:form>
+</body>
+</html:html>
+]]></programlisting>
+<itemizedlist>
+<listitem><para>Select<emphasis><property
moreinfo="none"> File > Save </property></emphasis>from
the menu bar</para></listitem>
+<listitem><para>Start JBoss Application Server by clicking on its icon (a
right-pointing arrow) in the toolbar</para></listitem>
+<listitem><para>Click the Run icon or right click your project folder and
select <emphasis><property moreinfo="none">Run As > Run on
Server</property></emphasis></para></listitem>
+</itemizedlist>
+<figure float="0">
+ <title>Run Icon</title>
+<mediaobject>
+ <imageobject>
+ <imagedata
fileref="images/struts_validation/struts_validation_1.png"></imagedata>
+ </imageobject>
+</mediaobject>
+</figure>
+<itemizedlist><listitem><para>In the browser window, click on the
"Say Hello!" button without having entered any name in the
form</para></listitem></itemizedlist>
+<para>A JavaScript error message should be displayed in an alert box.</para>
+</section>
+<section id="Server-SideValidation">
+<?dbhtml filename="Server-SideValidation.html"?>
+<title>Server Side Validation</title>
+<para>Server side validation does the validation inside the application on the
server. In a Struts application using the Validation Framework, you still don't have
to do any of the actual validation coding. The Validation Framework handles this. You will
though have to make a few changes to the JSP file you modified for client-side validation
along with a change to an action and a few changes to the form bean class.</para>
+</section>
+
+<section id="EditingTheJSPFile">
+<?dbhtml filename="EditingTheJSPFile.html"?>
+<title>Editing the JSP File</title>
+<itemizedlist>
+<listitem><para>Reopen inputname.jsp for
editing</para></listitem>
+<listitem><para>Delete the <emphasis
role="italic"><property
moreinfo="none">"onsubmit"</property></emphasis>
attribute in the <emphasis role="bold"><property
moreinfo="none"><html:form></property></emphasis>
element that you put in for client-side validation</para></listitem>
+
+<listitem><para>Add an <emphasis role="bold"><property
moreinfo="none"><html:errors></property></emphasis>
tag after the <emphasis role="bold"><property
moreinfo="none"><html:form></property></emphasis>
tag</para></listitem>
+</itemizedlist>
+<para>The JSP file should now look like this:</para>
+
+<programlisting format="linespecific"
role="XML"><![CDATA[<%@ taglib uri="/WEB-INF/struts-html.tld"
prefix="html" %>
+<html:html>
+<head>
+ <title>Input name</title>
+ <html:javascript formName="GetNameForm"/>
+</head>
+<body>
+ <html:form action="/greeting.do">
+ <table border="0" cellspacing="0" cellpadding="0">
+ <tr>
+ <td><b>Input name:</b></td>
+ </tr>
+ <tr>
+ <td>
+ <html:text property="name" />
+ <html:submit value=" Say Hello! " />
+ </td>
+ </tr>
+ </table>
+ </html:form>
+ <html:errors />
+</body>
+</html:html>
+]]></programlisting>
+
+</section>
+
+<section id="EditingTheAction">
+<?dbhtml filename="EditingTheAction.html"?>
+<title>Editing the Action</title>
+<itemizedlist>
+<listitem><para>In the Web Projects view, expand the node under the
<emphasis><property moreinfo="none">StrutsHello >
Configuration > default > struts-config.xml >
action-mappings</property></emphasis> node, right-click the
<emphasis><property
moreinfo="none">/greeting</property></emphasis> action, and then
select <emphasis><property
moreinfo="none">Properties...</property></emphasis>from the
context menu</para></listitem>
+
+ <listitem><para>In the Edit Properties window, insert the cursor into the
value column for the input property and click on the <property
moreinfo="none">...</property> button</para></listitem>
+
+ <listitem><para>In the dialog box, make sure the Pages tab is selected,
select <emphasis><property moreinfo="none">StrutsHello >
WEB-ROOT(WebContent) > pages >
inputname.jsp</property></emphasis>, click the <emphasis><property
moreinfo="none">Ok</property></emphasis> button, and then click
on the <emphasis><property
moreinfo="none">Close</property></emphasis>
button</para></listitem>
+</itemizedlist>
+</section>
+<section id="EditingTheFormBean">
+<?dbhtml filename="EditingTheFormBean.html"?>
+
+<title>Editing the Form Bean</title>
+<itemizedlist>
+<listitem><para>Right-click the <emphasis><property
moreinfo="none">/greeting</property></emphasis> action again and
select Open Form-bean Source to open the GetNameForm.java file for
editing</para></listitem>
+<listitem><para>Change the class that it extends from:
<emphasis><property
moreinfo="none">org.apache.struts.action.ActionForm</property></emphasis>
to <emphasis><property
moreinfo="none">org.apache.struts.validator.ValidatorForm</property></emphasis></para></listitem>
+<listitem><para>Comment out a validate method</para></listitem>
+</itemizedlist>
+<para>The file should now look like this:</para>
+<programlisting format="linespecific"
role="JAVA"><![CDATA[package sample;
+import javax.servlet.http.HttpServletRequest;
+import org.apache.struts.action.ActionErrors;
+import org.apache.struts.action.ActionMapping;
+public class GetNameForm extends
+
+org.apache.struts.validator.ValidatorForm
+{
+
+ private String name = "";
+
+ /**
+ * @return Returns the name.
+ */
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * @param name The name to set.
+ */
+ public void setName(String name)
+ {
+ this.name = name;
+ }
+
+ public GetNameForm ()
+ {
+ }
+
+ public void reset(ActionMapping actionMapping,
+ HttpServletRequest request)
+ {
+ this.name = "";
+ }
+
+ // public ActionErrors validate(ActionMapping actionMapping,
+ HttpServletRequest request)
+ {
+ // ActionErrors errors = new ActionErrors();
+ // return errors;
+ // }
+ }
+]]></programlisting>
+
+<itemizedlist>
+<listitem><para>Select <emphasis><property
moreinfo="none">File > Save All </property></emphasis>from
the menu bar</para></listitem>
+<listitem><para>Reload the application into JBoss AS by clicking on the
"Change Time Stamp" icon (a finger pointing with a little star) in the
toolbar</para></listitem>
+<listitem><para>Run the application</para></listitem>
+<listitem><para>In the browser window, click on the "Say Hello!"
button without having entered any name in the form</para></listitem>
+</itemizedlist>
+<para>The error message should appear in a refreshed version of the
form.</para>
+</section>
+
+</chapter>
+
+<chapter id="relevant_resources"
xml:base="file:///home/ochikvina/WORK/for_compare/trunk/struts/docs/struts_tools_tutorial/en/modules/relevant_resources.xml"
xreflabel="relevant_resources">
+ <?dbhtml filename="relevant_resources.html"?>
+ <chapterinfo>
+ <keywordset>
+ <keyword>JBoss Tools</keyword>
+ <keyword>Struts</keyword>
+ <keyword>Struts Application</keyword>
+ </keywordset>
+ </chapterinfo>
+
+ <title>Other Relevant Resources on the topic</title>
+
+ <para>Our reference: <ulink
url="../../struts_tools_ref_guide/html_single/index.html">Struts Tools
Reference Guide</ulink></para>
+ <para>Apache Struts: <ulink
url="http://struts.apache.org/">Struts Technology</ulink></para>
+ <para>Struts 2: <ulink
url="http://struts.apache.org/2.x/">Apache Struts
2</ulink></para>
+ <para>Get Started: <ulink
url="http://struts.apache.org/2.x/docs/home.html">Struts Getting
+ Started</ulink></para>
+ <para>Struts on IBM: <ulink
url="http://www.ibm.com/developerworks/library/j-struts/">St... -
+ An open-source MVC implementation</ulink></para>
+ <para>FAQ: <ulink
url="http://struts.apache.org/2.x/docs/faqs.html">Struts
FAQ</ulink></para>
+ <para>Download: <ulink
url="http://struts.apache.org/download.cgi#struts206">Release of Apache
+ Struts</ulink></para>
+
+ <para>Thus, this tutorial should help you to execute the hole development
circle for building a
+ sample Struts-based Web application using <property
moreinfo="none">JBoss Tools</property> bundle of Eclipse
+ plugins starting from organizing a new Struts project and ending with the running
and
+ deploying it onto the <property moreinfo="none">JBoss
Server</property>.</para>
+
+ <para>To find out all the features of <property
moreinfo="none">JBoss Tools</property> for working with Struts
+ refer to our <ulink
url="../../struts_tools_ref_guide/html_single/index.html">Struts Tools
Reference Guide</ulink>. If you
+ still have questions you are always welcome on <ulink
url="http://www.jboss.com/index.html?module=bb&op=viewforum&...
+ Tools Forum</ulink>.</para>
+</chapter>
+
+
+
+</book>