Struts validate

Hello people,
can someone clearify me the validate method in myActionFom class.
I don't know how to tell struts to redirect to a page when an error is found.
Please let me know if you have a demo.
I see I have got the ActionMapping but how can I use it?
Thanks.
C.
public ActionErrors validate(
          ActionMapping mapping,
          HttpServletRequest request) {
          String byp = ""+request.getParameter("byp");
          ActionErrors errors = new ActionErrors();
          // Validate the fields in your form, adding
          // adding each error to this.errors as found, e.g.
          if (byp.equals("byp")) {
               errors.add("nopwd", new ActionError"errors.nopwd"));
          return errors;

Ok I have found the solution.
It is the input parameter in the mapping in strut-config.xml
Thanks anyway.
C.

Similar Messages

  • How to include .js file into validater-rules.xml

    iam doing project using struts.
    i have .js file for client side validation.how to include .js file into struts validate-rules.xml so that i can use those validation in my project.
    without writing any class.
    is there any way

    copy + paste from my book...............
    Enabling Client-Side Validations
    In addition to providing a framework for simplifying server-side form data validations, Validator provides an easy-to-use mechanism for performing client-side validations. Each validation routine defined in the validator-rules.xml file optionally specifies JavaScript code that can be run in the browser (client side) to perform the same validations that take place on the server side. When run on the client side, the validations will not allow the form to be submitted until they have all passed.
    To enable client-side validation, you have to place the HTML Tag Library's javascript tag in each JSP for which you want validation performed, as shown here:
    <html:javascript formName="logonForm"/>
    The javascript tag requires that you use the formName attribute to specify the name of a <form> definition from the validation.xml file, as shown here, for which you want validations performed:
    <form name="logonForm">
    <field property="username" depends="required">
    <arg0 key="prompt.username"/>
    </field>
    <field property="password" depends="required">
    <arg0 key="prompt.password"/>
    </field>
    </form>
    All the validations that you have specified for the <form> definition to run on the server side will be run on the client side.

  • How to get the request scope values?

    Hi,
    I have one question about Struts validate framework question is How can i get the request scope values when the validate method throws an exception?
    My scenario is I have some values in the request scope in one page. After submitting the page the validate method throws an exception, then the errors were displayed in the page and it ask for provide correct information. However, at this time the values in the first request will become null. How can I get those request values?
    Request.setAttribute(�con�, conn);Link after click this link user will display with user reg. form with user details input fields. After submitting he user details form if user provide some invalid information then validate method in Action form will throw errors and displayed the User details form with errors. However, the request attribute �con� will become null at this point of time. How can I get the user request attribute in user details form?
    Assume request have more than 100 values.
    Waiting for answer...
    Regards,
    Bhaskar Reddy

    Your code is probably fine, and you are probably running into http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6497210
    See also http://forum.java.sun.com/thread.jspa?messageID=9419890
    SUN needs to fix a few bugs for this to work...

  • How to use ActionForm validate() method in ADF/Struts project

    Hi
    We are developing a project using ADF/Struts. We are not planning to use entity level validation. Rather we prefer to have it at Struts Form Bean level. So we need to have validate() method in Form Bean.
    That mean we need to have seperate bean for all the actions /jsp. The ADF's DataForm form bean is not gonna work for us. Is that correct.
    Please let me know...am I in the right direction.
    That could be a different discussion why we don't prefer entity level validation

    You can use the Struts validator plug-in (there's a howto on doing that on OTN) and it will handle the basics for you through XML definitions.
    If you want to specifically have a Form bean with a Validate() then the issue is that the current "DataForm" is a generic bean driven of the databinding files, so yes you'd have to write a bean per screen to use instead and loose that benefit of having a universal Bean. (Internally the DataPage and DataActions will respect the ActionForm APIs so you can pluf your own ActionForm subclass in with no problem.
    Plan B might be to leave the DataForm Bean in place and instead override the lifecycle of the datapage, probably in prepareModelUpdates()

  • Easiest way to validate with Struts?..

    Hello,
    I have a problem with validating a simple form with javascript via Struts validator. It inserts the whole javascript instead <html:javascript formName="whatever"/> and as a result half of the html code that follows gets cut off. I don't know why this happens, maybe because the javascript is so big (although that sounds like nonsense).
    Is there a better, simpler way to validate with Struts? I just want something to start working..
    Thanks.

    Make sure you have validator-rules.xml file in WEB-INF/ folder
    Make sure you have validation.xml file in WEB-INF/ folder
    Modifty validation.xml file to match your form name (as defined in struts-config.xml)
    i think this should be enough

  • How to validate array fields in struts

    hi
    iam working on struts. i have array fields in my jsp page. i wanna do validations for those fields. iam specifying name of the field in the validation.xml. but iam not getting correct validations. how can i have proceed in the case of array fields.
    plzz help me
    vamsi

    hi thank you for your help
    iam using the same syntax only. but iam not getting iam sending my jsp and xml files
    <body>
    <logic:messagesPresent>
    <font color="red"><b>
    <html:messages id="error">
    <li><%=error %></li>
    </html:messages>
    </b></font>
    </logic:messagesPresent>
    <html:form action="/wofinal" onsubmit="return validateWofinalForm(this)">
    <% System.out.println("true"); %>
    <p align="center"><font size="5" color="#0000FF">
      Work Order Release</font>
      <p align="center"> </p>
      <table border="1" width="70%" align=center>
        <tr>
          <td width="50%">
            <p align="right"><b><font color="#990000">Select Work Order Number</font> </b>   
          </td>
      <td width="50%" align=left>
      <%
         String worder_no=(String)session.getAttribute("worder_no");
          String selected=(String)session.getAttribute("selected");
      %>
         <%= worder_no %>
         <html:hidden property="worder_no" value="<%= worder_no %>" ></html:hidden>
      </td>
      </tr>
      <tr>
          <td width="50%">
            <p align="right">        <b><font color="#990000">Number
            of Candidates Got Selected </font></b>    
          </td>
          <td width="50%">
            <%= selected %>
             <html:hidden property="selected" value="1"></html:hidden>
      </tr>
      <tr>
           <td width="50%" align="right"><b><font color="#990000">Remarks</font></b>   </td>
           <td width="50%"><html:text maxlength="300" property="remarks" size="50"></html:text>
      </tr>
      </table>
      <p> </p>
      <table border="1" width="90%" height="44" align="center">
        <tr>
          <td width="5%" valign="middle" align="center" height="38">
            <p align="center"><b><font color="#990000" >S.No</font></b></p></td>
          <td width="16%" valign="middle" align="center" height="38"><b><font color="#990000">Name</font></b></td>
           <td width="16%" valign="middle" align="center" height="38"><b><font color="#990000">Qualification</font></b></td>
          <td width="12%" valign="middle" align="center" height="38"><b><font color="#990000">Date of
            Commencement</font></b></td>
          <td width="12%" valign="middle" align="center" height="38"><b><font color="#990000">Date of
            Completion</font></b></td>
          <td width="10%" valign="middle" align="center" height="38"><b><font color="#990000">Rate per MM</font></b></td>
          <td width="5%" valign="middle" align="center" height="38"><b><font color="#990000">No. of MMs</font></b></td>
        </tr>
            [u]  Here iam getting problem in the validation of below fields[/u]
         <% int count=Integer.parseInt(selected); %>
         <% for(int i=1;i<=count;i++) {
            String st=""+i;
         %>
          <tr>
          <td width="5%"  align="center" height="38"><html:text property="sno" value="<%= st %>" onfocus="this.blur()" maxlength="2" size="2"/></td>
          <td width="17%" valign="middle" align="center" height="38"><html:text property="name" value="" ></html:text></td>
          <td width="10%" valign="middle" align="center" height="38"><html:text property="qual" value="" size="20"></html:text></td>
         <td width="10%" valign="middle" align="center" height="38"><html:text property="comm"  value="" maxlength="10" size="15"></html:text></td>
          <td width="10%" valign="middle" align="center" height="38"><html:text property="comple" value="" maxlength="10" size="15"></html:text></td>
          <td width="10%" valign="middle" align="center" height="38"><html:text property="rpm" value="" size="10"></html:text></td>
          <td width="7%" valign="middle" align="center" height="38"><html:text property="mm" value="" maxlength="3" size="5"></html:text></td>
          </tr>
         <% } %>
         </table>
          <p align=center><html:submit/></p>
      </html:form>
      </body>
    </html:html>[b]and my struts-config file is
        <form-beans>
              <form-bean name="wofinalForm"
                   type="bean.WOfinalForm" >
                </form-bean>
       </form-beans>
       <action-mappings>
            <action path="/wofinal"
                    type="bean.WOfinalAction"
                    name="wofinalForm"
                    scope="request"
                        validate="true"
                        input="/worder_final.jsp">
                      <forward name="SUCCESS" path="/index.jsp" redirect="true"/>
                    <forward name="FAILURE" path="/worder_rel.jsp" redirect="true" /> 
           </action>            
       </action-mappings>
    and my validation.xml file is
    <formset>
              <form name="wofinalForm">
                   <field property="name"
                           depends="required">
                             <arg key="finalform.name" />
                    </field>
                    <field property="comm"
                           depends="required,date">
                             <arg key="finalform.comm"/>
                             <arg1 key="${var:datePattern}"
                                   name="datePattern" resource="false" />
                             <var>
                                 <var-name>datePattern</var-name>
                                  <var-value>dd/mm/yyyy</var-value>
                             </var>
                    </field>
                    <field property="rpm"
                           depends="required,integer">
                           <arg0 key="finalform.rpm"/>
                             <arg0 key="finalform.rpm" />
                    </field>
                    <field property="mm"
                           depends="required,integer">
                           <arg0 key="finalform.mm"/>
                             <arg1 key="finalform.mm" />
                    </field>
              </form>
    </formset>in the jsp page iam using loop to display fields
    in the validations of those fields iam getting error.
    plzz help me.
    vamsi

  • Struts - How not to lose parameter after validate() method

    Hi
    I have following problem. When I submit a form(action= sendMessage.do) from site generated in writeMessage.do?id=1 action and validate method find errors it forwards to writeMessage.do I need to forward to writeMessage.do?id=1
    <action path="/sendMessage"
    type="SendMessageAction"
    name="writeMessageForm"
    scope="request"
    validate="true"
    input="/writeMessage.do">
    <forward name="ok" path="/info.jsp"/>
    </action>
    I need something like input="/writeMessage.do?id=xx" , but xx will be changing in runtime. How to solve that problem?

    Swap input="/writeMessage.do" with input="/sendMessage.jsp" (or whatever the name of the input JSP was). If I remember rightly this will fix it for the automatic validation errors, however you'll still get this problem if you need to test business rules/custom validation rules from within your application. To fix this copy the following class and specify a className attribute for your action element in the struts config
    i.e. <action ... className="com.whatever.CustomActionMapping" ... />
    package com.whatever
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.Iterator;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    public class CustomActionMapping extends ActionMapping
        public ActionForward findForward(String forwardName, HashMap requestParams)
            ActionForward fwd = findForward(forwardName);
            Iterator iter1 = requestParams.keySet().iterator();       
            if (iter1.hasNext())
                StringBuffer basePath = new StringBuffer(fwd.getPath());           
                basePath.append("?");
                 while (iter1.hasNext())
                     String paramName = (String) iter1.next();
                     ArrayList paramValues = (ArrayList) requestParams.get(paramName);
                     Iterator iter2 = paramValues.iterator();
                     while (iter2.hasNext())
                         String paramValue = String.valueOf(iter2.next());
                          basePath.append(paramName);
                          basePath.append("=");
                          basePath.append(paramValue);
                          if (iter2.hasNext())
                              basePath.append("&");
                     if (iter1.hasNext())
                         basePath.append("&");
                 fwd = new ActionForward(fwd);
                 fwd.setPath(basePath.toString());
            return fwd;
    }Then in the execute method of your action do something like
    // Creates a map to store the request parameters in
    HashMap requestParams = new HashMap();
    // Helper method to extract a request parameter for 'teamId'
    Integer teamId = RequestHelper.getTeamIdParam(request);       
    // Adds the teamId parameter to the hash map
    setRequestParam(RequestHelper.TEAM_ID, teamId, requestParams);
    // Creates a new forward with the required request parameters dynamically appended to the forward path
    return ((CustomActionMapping) mapping).findForward(forwardName, requestParams);

  • Validate integer with a comma thousands seperator using struts Validator

    Using struts validator.
    have to validate the user entered value.
    The value entered should be a positive integer with a comma thousands seperator. the number need not be in thousands.
    I have as below to check for positive integer without comma seperator. but not sure how to validate if the user entered value with a comma seperator?
    i.e value like 25,349 // how to validate this?
    <field property="hrs" depends="integer,validwhen">
    <msg name="integer" key="errors.notvalid"/>
    <msg name="validwhen" key="errors.notvalid"/>
    <var>
    <var-name>test</var-name>
    <var-value>(*this* >= 0)</var-value>
    </var>
    </field>
    how to validate the user entered value with a comma seperator? Thanks.

    Found this in Struts' Building View Components section: Note: If your required form property is one of the Java object representations of primitive types (ie. java.lang.Integer), you must set the ActionServlet's convertNull init. parameter to true. Failing to do this will result in the required validation not being performed on that field because it will default to 0. This seems to be part of my problem. With it turned on, Validator picks up that the value is required. Now to figure out the issue with putting in a double value instead of an Integer.

  • Struts DTDs fail to validate

    I am using WebLogic8.1 sp3 and am trying to deploy an application that uses struts-blank.war from the Struts 1.2.2 binary distribution. The .EAR that I built errors when deploying and fails to run, complaining that it cannot connect to jakarta.apache.org to validate some XML files. I downloaded the DTDs locally and modified the references to them in order to get things to work.
    I am behind a firewall. Does anyone know if there is a way to configure weblogic or Struts to use a proxy?
    Since I need to deploy my application to customers that may also be behind a firewall or don't have an internet connection, I feel that I need to include local copies of the DTDs. Unfortunately, I cannot get my deployment to find them unless I specify the absolute paths to the files and this is not a portable solution. Any ideas?

    Hey yiwei,
    Welcome to the BlackBerry Support Community Forums.
    If you're receiving this error you will need a PC to finish the upgrade by going to www.blackberry.com/update
    -ViciousFerret
    Come follow your BlackBerry Technical Team on Twitter! @BlackBerryHelp
    Be sure to click Like! for those who have helped you.
    Click  Accept as Solution for posts that have solved your issue(s)!

  • Struts 11 UpdateAction - validate attribute - bug or incorrect usage?

    I�m updating a row which has an date attribute. For this attribute I�ve created a method validator in the EO�s <entity>Impl.java file:
    public boolean validateErledigtdatum(Date value)
    DBTransaction trans = (DBTransaction)getDBTransaction();
    Date currentDate = Bc4jUtils.getCurrentDbDate(trans);
    return (value.compareTo(currentDate) >= 0);
    The struts UpdateAction validate method calls the validateErledigtdatum(�) twice:
    -     firstly, in the populateRow(�) which is executed correctly, comparing the input value with the currentDate
    -     secondly, in the row.validate() method, which compares the currentDate with the Date value stored in the database.?!!??? This of course brings an error if the stored Date value does not pass the validateErledigtdatum(�):
    Validation Error
    You must correct the following error(s) before proceeding:
    Attribute set validation method validateErledigtdatum failed for attribute Erledigtdatum in BehAuftrModule.AuftrPosList
    Has anyone experienced something like this? Thanks in advance for suggestions.
    Regards
    gabriela

    hi
    I have been searching the JDeveloper help documentation for "validation method" and I could not find much useful information.
    In JDeveloper 10g Preview there is a topic "Implementing Validation Logic", but most of the topics that discuss implementing validation logic in detail show a page that says "Topic not available in this release." ... I know it is a preview release, but without the proper documentation it is hard to "preview".
    tnx
    -Jan

  • Struts how can validate form without using validate method.

    Hi
    Is this possible validate a form without using validate form
    if it is possible then
    please tell me how can we validate it
    Thanks
    Surendra

    Make use of validator framework.. this would enable you to do validation both @ client side by javascript under defined validation rules and also enables you to do it @ serverside....
    And if want to create a Dyanamic Form beans which takes care of validations to make use ValidatorForm or DynaValidatorForm class under the pacakage org.apache.struts.validator and create an instance of it with preconfigured validations under structs...
    Make use of the links below which i think are the best tutors for newbies....
    http://www.roseindia.net/struts/struts_validator_framework.shtml
    http://www.oracle.com/technology/oramag/oracle/04-jan/o14dev_struts.html
    http://www.onjava.com/pub/a/onjava/2002/12/11/jakartastruts.html
    Hope might be of some help.. :)
    REGARDS,
    RaHuL

  • Why dynamic table creation with struts working only for JDK1.3.1_02 version

    Row
    import java.util.Vector;
    public class Row
    private static int colsize;
    private Column[] columns;
    public void setColumns(Column[] columns)
    System.out.println("SetColumns");
    this.columns = columns;
    public void setColumn(int i, Column column)
         System.out.println("setting"+ i+"th column"+column);
    public Column[] getColumns()
    return null;
    public Column getColumns(int i)
    System.out.println("Column"+i);
    System.out.println("Colsize"+colsize);
    if(columns == null)
    columns= new Column[colsize];
    if(columns[i] == null)
    columns[i] = new Column();
    return columns;
    public int getColsize()
         return colsize;
    public static void setColsize(int size)
         colsize = size;
    Column:
    public class Column
    private String value;
    public void setValue(String value)
    System.out.println("Value="+value);
    this.value = value;
    public String getValue()
    return value;
    ApplicationResources:
    button.cancel=Cancel
    button.confirm=Confirm
    button.reset=Reset
    button.save=Save
    database.load=Cannot load database from {0}
    error.database.missing=<li>User database is missing, cannot validate logon credentials</li>
    error.fromAddress.format=<li>Invalid format for From Address</li>
    error.fromAddress.required=<li>From Address is required</li>
    error.fullName.required=<li>Full Name is required</li>
    error.host.required=<li>Mail Server is required</li>
    error.noSubscription=<li>No Subscription bean in user session</li>
    error.password.required=<li>Password is required</li>
    error.password2.required=<li>Confirmation password is required</li>
    error.password.match=<li>Password and confirmation password must match</li>
    error.password.mismatch=<li>Invalid username and/or password, please try again</li>
    error.replyToAddress.format=<li>Invalid format for Reply To Address</li>
    error.transaction.token=<li>Cannot submit this form out of order</li>
    error.type.invalid=<li>Server Type must be 'imap' or 'pop3'</li>
    error.type.required=<li>Server Type is required</li>
    error.username.required=<li>Username is required</li>
    error.username.unique=<li>That username is already in use - please select another</li>
    errors.footer=</ul><hr>
    errors.header=<h3><font color="red">Validation Error</font></h3>You must correct the following error(s) before proceeding:<ul>
    errors.ioException=I/O exception rendering error messages: {0}
    heading.autoConnect=Auto
    heading.subscriptions=Current Subscriptions
    heading.host=Host Name
    heading.user=User Name
    heading.type=Server Type
    heading.action=Action
    index.heading=MailReader Demonstration Application Options
    index.logon=Log on to the MailReader Demonstration Application
    index.registration=Register with the MailReader Demonstration Application
    index.title=MailReader Demonstration Application (Struts 1.0-b1)
    index.tour=A Walking Tour of the Example Application
    linkSubscription.io=I/O Error: {0}
    linkSubscription.noSubscription=No subscription under attribute {0}
    linkUser.io=I/O Error: {0}
    linkUser.noUser=No user under attribute {0}
    logon.title=MailReader Demonstration Application - Logon
    mainMenu.heading=Main Menu Options for
    mainMenu.logoff=Log off MailReader Demonstration Application
    mainMenu.registration=Edit your user registration profile
    mainMenu.title=MailReader Demonstration Application - Main Menu
    option.imap=IMAP Protocol
    option.pop3=POP3 Protocol
    prompt.autoConnect=Auto Connect:
    prompt.fromAddress=From Address:
    prompt.fullName=Full Name:
    prompt.mailHostname=Mail Server:
    prompt.mailPassword=Mail Password:
    prompt.mailServerType=Server Type:
    prompt.mailUsername=Mail Username:
    prompt.password=Password:
    prompt.password2=(Repeat) Password:
    prompt.replyToAddress=Reply To Address:
    prompt.username=Username:
    registration.addSubscription=Add
    registration.deleteSubscription=Delete
    registration.editSubscription=Edit
    registration.title.create=Register for the MailReader Demostration Application
    registration.title.edit=Edit Registration for the MailReader Demonstration Application
    subscription.title.create=Create New Mail Subscription
    subscription.title.delete=Delete Existing Mail Subscription
    subscription.title.edit=Edit Existing Mail Subscription
    LogonForm
    import javax.servlet.http.HttpServletRequest;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionMapping;
    public class LogonForm extends ActionForm
    private String username;
    private String password;
    private String errors;
    public String getUsername()
    return username;
    public void setUsername(String username)
    this.username = username;
    public void setPassword(String password)
    this.password = password;
    public String getPassword()
    return password;
    public String getErrors()
         return errors;
    public void setErrors(String errors)
         this.errors = errors;
    public ActionErrors validate(ActionMapping mapping,
    HttpServletRequest request) {
    ActionErrors errors = new ActionErrors();
    if ((username == null) || (username.length() < 1))
    errors.add("username", new ActionError("error.username.required"));
    if ((password == null) || (password.length() < 1))
    errors.add("password", new ActionError("error.password.required"));
    return errors;
    TableForm
    import org.apache.struts.action.ActionForm;
    import java.util.Vector;
    public class TableForm extends ActionForm
    private static int rowsize;
    private Row[] rows;
    public Row getRows(int i)
    System.out.println("Row"+i);
    System.out.println("Rowsize"+rowsize);
    if(rows == null)
    rows = new Row[rowsize];
    if(rows[i] == null)
    rows[i] = new Row();
    return rows[i];
    public Row[] getRows()
         return null;
    public void setRows(Row[] rows)
         System.out.println("SetRows");
         // this.rows=rows;
    public static void setRowsize(int size)
         rowsize = size;
    public int getRowSize()
         return rowsize;
    LogonAction
    import java.io.IOException;
    import java.util.Hashtable;
    import java.util.Locale;
    import javax.servlet.RequestDispatcher;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpSession;
    import javax.servlet.http.HttpServletResponse;
    import org.apache.struts.action.Action;
    import org.apache.struts.action.ActionError;
    import org.apache.struts.action.ActionErrors;
    import org.apache.struts.action.ActionForm;
    import org.apache.struts.action.ActionForward;
    import org.apache.struts.action.ActionMapping;
    import org.apache.struts.action.ActionServlet;
    import org.apache.struts.util.MessageResources;
    public class LogonAction extends Action
    public ActionForward execute(ActionMapping mapping,
                        ActionForm form,
                        HttpServletRequest request,
                        HttpServletResponse response)
         throws IOException, ServletException {
    LogonForm logonForm = (LogonForm) form;
    System.out.println(logonForm);
    System.out.println(logonForm.getUsername());
    System.out.println(logonForm.getPassword());
    if(logonForm.getUsername().equals("test") && logonForm.getPassword().equals("test"))
    //TableForm tform = new TableForm();
    //tform.setRowsize(2);
    //tform.getRows(0).setColsize(2);
    //tform.getRows(1).setColsize(2);
    //request.getSession().setAttribute("tableForm",tform);
         System.out.println("Table Form setRowSize");
    TableForm.setRowsize(2);
         System.out.println("Table Form set ColSize");
    Row.setColsize(2);
         System.out.println("Returning success");
    return mapping.findForward("success");
    else
              ActionErrors errors = new ActionErrors();
              errors.add("password",
    new ActionError("error.password.mismatch"));
    saveErrors(request, errors);
    //logonForm.setErrors("LoginError");
    return mapping.findForward("failure");
    <?xml version="1.0" encoding="ISO-8859-1" ?>
    <!DOCTYPE struts-config PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 1.0//EN"
    "http://jakarta.apache.org/struts/dtds/struts-config_1_0.dtd">
    <!--
    This is the Struts configuration file for the example application,
    using the proposed new syntax.
    NOTE: You would only flesh out the details in the "form-bean"
    declarations if you had a generator tool that used them to create
    the corresponding Java classes for you. Otherwise, you would
    need only the "form-bean" element itself, with the corresponding
    "name" and "type" attributes.
    -->
    <struts-config>
    <form-beans>
    <!-- Logon form bean -->
    <form-bean name="logonForm"
    type="LogonForm"/>
    <form-bean name="tableForm"
    type="TableForm"/>
    <form-bean name="profileForm"
    type="ProfileForm"/>
    </form-beans>
    <global-forwards>
    <forward name="success" path="/Profile.jsp"/>
    </global-forwards>
    <!-- ========== Action Mapping Definitions ============================== -->
    <action-mappings>
    <!-- Edit user registration -->
    <action path="/logon"
    type="LogonAction"
    name="logonForm"
    scope="request"
    validate="false"
    input="/Test.jsp">
    <forward name="success" path="/Table.jsp"/>
    <forward name="failure" path="/Test.jsp"/>
    </action>
    <action path="/table"
    type="TableAction"
    name="tableForm"
    scope="request"
    validate="false">
    <forward name="success" path="/Bean.jsp"/>
    <forward name="failure" path="/Table.jsp"/>
    </action>
    <action path="/profile"
    type="ProfileAction"
    name="profileForm"
    scope="request"
    validate="false"
    parameter="method">
    <forward name="edit" path="/EditProfile.jsp"/>
    <forward name="show" path="/Profile.jsp"/>
    </action>
    </action-mappings>
    </struts-config>
    Test.jsp
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <html:html locale="true">
    <html:form action="/logon" >
    <center>
    <table>
    <tr>
    <td> Username </td>
    <td> <html:text property="username" size="16" maxlength="16"/> </td>
    <td> <html:errors property="username" /> </td>
    </tr>
    <tr>
    <td> Password </td>
    <td> <html:password property="password" size="16" maxlength="16"
    redisplay="false"/> </td>
    <td><html:errors property="password" /> </td>
    </tr>
    </table>
    </center>
    <center> <html:submit property="submit" value="Submit"/> </center>
    </html:form>
    </html:html>
    Table.jsp
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
    <html:html locale="true">
    <html:form action="/table" >
    <center>
    <table>
    <tr>
    <td> <html:text property="rows[0].columns[0].value" /> </td>
    <td> <html:text property="rows[0].columns[1].value" /></td>
    </tr>
    <tr>
    <td> <html:text property="rows[1].columns[0].value" /> </td>
    <td> <html:text property="rows[1].columns[1].value" /></td>
    </tr>
    </table>
    </center>
    <center> <html:submit property="submit" value="Submit"/> </center>
    </html:form>
    </html:html>

    The above application runs only with JDK1.3.1_02 and not with any other version. This application is creating dynamic table using struts.
    Can anybody help me on the same
    also appending web.xml contents:
    <?xml version="1.0" ?>
    <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
    <web-app>
    <!-- Action Servlet Configuration -->
    <servlet>
    <servlet-name>action</servlet-name>
    <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
    <init-param>
    <param-name>application</param-name>
    <param-value>ApplicationResources</param-value>
    </init-param>
    <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
    </init-param>
    <init-param>
    <param-name>debug</param-name>
    <param-value>2</param-value>
    </init-param>
    <init-param>
    <param-name>detail</param-name>
    <param-value>2</param-value>
    </init-param>
    <init-param>
    <param-name>validate</param-name>
    <param-value>true</param-value>
    </init-param>
    <load-on-startup>2</load-on-startup>
    </servlet>
    <!-- Action Servlet Mapping -->
    <servlet-mapping>
    <servlet-name>action</servlet-name>
    <url-pattern>*.do</url-pattern>
    </servlet-mapping>
    <!--Welcome file list starts here -->
    <welcome-file-list>
    <welcome-file>
    /test.jsp
    </welcome-file>
    </welcome-file-list>
    <!-- Struts Tag Library Descriptors -->
    <taglib>
    <taglib-uri>/WEB-INF/struts-bean.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
    </taglib>
    <taglib>
    <taglib-uri>/WEB-INF/struts-logic.tld</taglib-uri>
    <taglib-location>/WEB-INF/struts-logic.tld</taglib-location>
    </taglib>
    </web-app>
    validate-rules.xml
    <!DOCTYPE form-validation PUBLIC
    "-//Apache Software Foundation//DTD Commons Validator Rules Configuration 1.0//EN"
    "http://jakarta.apache.org/commons/dtds/validator_1_0.dtd">
    <!--
    This file contains the default Struts Validator pluggable validator
    definitions. It should be placed somewhere under /WEB-INF and
    referenced in the struts-config.xml under the plug-in element
    for the ValidatorPlugIn.
    <plug-in className="org.apache.struts.validator.ValidatorPlugIn">
    <set-property property="pathnames" value="/WEB-INF/validator-rules.xml,
    /WEB-INF/validation.xml"/>
    </plug-in>
    These are the default error messages associated with
    each validator defined in this file. They should be
    added to your projects ApplicationResources.properties
    file or you can associate new ones by modifying the
    pluggable validators msg attributes in this file.
    # Struts Validator Error Messages
    errors.required={0} is required.
    errors.minlength={0} can not be less than {1} characters.
    errors.maxlength={0} can not be greater than {1} characters.
    errors.invalid={0} is invalid.
    errors.byte={0} must be a byte.
    errors.short={0} must be a short.
    errors.integer={0} must be an integer.
    errors.long={0} must be a long.
    errors.float={0} must be a float.
    errors.double={0} must be a double.
    errors.date={0} is not a date.
    errors.range={0} is not in the range {1} through {2}.
    errors.creditcard={0} is an invalid credit card number.
    errors.email={0} is an invalid e-mail address.
    -->
    <form-validation>
    <global>
    <validator name="required"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateRequired"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    msg="errors.required">
    <javascript><![CDATA[
    function validateRequired(form) {
    var isValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oRequired = new required();
    for (x in oRequired) {
         var field = form[oRequired[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'file' ||
    field.type == 'select-one' ||
    field.type == 'radio' ||
    field.type == 'password') {
    var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                       if (si >= 0) {
                                            value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (trim(value).length == 0) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oRequired[x][1];
         isValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return isValid;
    // Trim whitespace from left and right sides of s.
    function trim(s) {
    return s.replace( /^\s*/, "" ).replace( /\s*$/, "" );
    ]]>
    </javascript>
    </validator>
    <validator name="requiredif"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateRequiredIf"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    org.apache.commons.validator.Validator,
    javax.servlet.http.HttpServletRequest"
    msg="errors.required">
    </validator>
    <validator name="minlength"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateMinLength"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.minlength">
    <javascript><![CDATA[
    function validateMinLength(form) {
    var isValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oMinLength = new minlength();
    for (x in oMinLength) {
    var field = form[oMinLength[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea') {
    var iMin = parseInt(oMinLength[x][2]("minlength"));
    if ((trim(field.value).length > 0) && (field.value.length < iMin)) {
    if (i == 0) {
    focusField = field;
    fields[i++] = oMinLength[x][1];
    isValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return isValid;
    }]]>
    </javascript>
    </validator>
    <validator name="maxlength"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateMaxLength"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.maxlength">
    <javascript><![CDATA[
    function validateMaxLength(form) {
    var isValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oMaxLength = new maxlength();
    for (x in oMaxLength) {
    var field = form[oMaxLength[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea') {
    var iMax = parseInt(oMaxLength[x][2]("maxlength"));
    if (field.value.length > iMax) {
    if (i == 0) {
    focusField = field;
    fields[i++] = oMaxLength[x][1];
    isValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return isValid;
    }]]>
    </javascript>
    </validator>
    <validator name="mask"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateMask"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.invalid">
    <javascript><![CDATA[
    function validateMask(form) {
    var isValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oMasked = new mask();
    for (x in oMasked) {
    var field = form[oMasked[x][0]];
    if ((field.type == 'text' ||
    field.type == 'textarea') &&
    (field.value.length > 0)) {
    if (!matchPattern(field.value, oMasked[x][2]("mask"))) {
    if (i == 0) {
    focusField = field;
    fields[i++] = oMasked[x][1];
    isValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return isValid;
    function matchPattern(value, mask) {
    return mask.exec(value);
    }]]>
    </javascript>
    </validator>
    <validator name="byte"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateByte"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.byte"
    jsFunctionName="ByteValidations">
    <javascript><![CDATA[
    function validateByte(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oByte = new ByteValidations();
    for (x in oByte) {
         var field = form[oByte[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'select-one' ||
                                  field.type == 'radio') {
                                  var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                       if (si >= 0) {
                                            value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (value.length > 0) {
    if (!isAllDigits(value)) {
    bValid = false;
    if (i == 0) {
    focusField = field;
    fields[i++] = oByte[x][1];
    } else {
         var iValue = parseInt(value);
         if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oByte[x][1];
         bValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return bValid;
    }]]>
    </javascript>
    </validator>
    <validator name="short"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateShort"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.short"
    jsFunctionName="ShortValidations">
    <javascript><![CDATA[
    function validateShort(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oShort = new ShortValidations();
    for (x in oShort) {
         var field = form[oShort[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'select-one' ||
    field.type == 'radio') {
    var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                       if (si >= 0) {
                                            value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (value.length > 0) {
    if (!isAllDigits(value)) {
    bValid = false;
    if (i == 0) {
    focusField = field;
    fields[i++] = oShort[x][1];
    } else {
         var iValue = parseInt(value);
         if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oShort[x][1];
         bValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return bValid;
    }]]>
    </javascript>
    </validator>
    <validator name="integer"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateInteger"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.integer"
    jsFunctionName="IntegerValidations">
    <javascript><![CDATA[
    function validateInteger(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oInteger = new IntegerValidations();
    for (x in oInteger) {
         var field = form[oInteger[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'select-one' ||
    field.type == 'radio') {
    var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                  if (si >= 0) {
                                       value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (value.length > 0) {
    if (!isAllDigits(value)) {
    bValid = false;
    if (i == 0) {
         focusField = field;
                                  fields[i++] = oInteger[x][1];
    } else {
         var iValue = parseInt(value);
         if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oInteger[x][1];
         bValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return bValid;
    function isAllDigits(argvalue) {
    argvalue = argvalue.toString();
    var validChars = "0123456789";
    var startFrom = 0;
    if (argvalue.substring(0, 2) == "0x") {
    validChars = "0123456789abcdefABCDEF";
    startFrom = 2;
    } else if (argvalue.charAt(0) == "0") {
    validChars = "01234567";
    startFrom = 1;
    } else if (argvalue.charAt(0) == "-") {
    startFrom = 1;
    for (var n = startFrom; n < argvalue.length; n++) {
    if (validChars.indexOf(argvalue.substring(n, n+1)) == -1) return false;
    return true;
    }]]>
    </javascript>
    </validator>
    <validator name="long"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateLong"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.long"/>
    <validator name="float"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateFloat"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.float"
    jsFunctionName="FloatValidations">
    <javascript><![CDATA[
    function validateFloat(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oFloat = new FloatValidations();
    for (x in oFloat) {
         var field = form[oFloat[x][0]];
    if (field.type == 'text' ||
    field.type == 'textarea' ||
    field.type == 'select-one' ||
    field.type == 'radio') {
         var value = '';
                                  // get field's value
                                  if (field.type == "select-one") {
                                       var si = field.selectedIndex;
                                       if (si >= 0) {
                                       value = field.options[si].value;
                                  } else {
                                       value = field.value;
    if (value.length > 0) {
    // remove '.' before checking digits
    var tempArray = value.split('.');
    var joinedString= tempArray.join('');
    if (!isAllDigits(joinedString)) {
    bValid = false;
    if (i == 0) {
    focusField = field;
    fields[i++] = oFloat[x][1];
    } else {
         var iValue = parseFloat(value);
         if (isNaN(iValue)) {
         if (i == 0) {
         focusField = field;
         fields[i++] = oFloat[x][1];
         bValid = false;
    if (fields.length > 0) {
    focusField.focus();
    alert(fields.join('\n'));
    return bValid;
    }]]>
    </javascript>
    </validator>
    <validator name="double"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateDouble"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.double"/>
    <validator name="date"
    classname="org.apache.struts.validator.FieldChecks"
    method="validateDate"
    methodParams="java.lang.Object,
    org.apache.commons.validator.ValidatorAction,
    org.apache.commons.validator.Field,
    org.apache.struts.action.ActionErrors,
    javax.servlet.http.HttpServletRequest"
    depends=""
    msg="errors.date"
    jsFunctionName="DateValidations">
    <javascript><![CDATA[
    function validateDate(form) {
    var bValid = true;
    var focusField = null;
    var i = 0;
    var fields = new Array();
    oDate = new DateValidations();
    for (x in oDate) {
    var value = form[oDate[x][0]].value;
    var datePattern = oDate[x][2]("datePatternStrict");
    if ((form[oDate[x][0]].type == 'text' ||
    form[oDate[x][0]].type == 'textarea') &&
    (value.length > 0) &&
    (datePattern.length > 0)) {
    var MONTH = "MM";
    var DAY = "dd";
    var YEAR = "yyyy";
    var orderMonth = datePattern.indexOf(MONTH);
    var orderDay = datePattern.indexOf(DAY);
    var orderYear = datePattern.indexOf(YEAR);
    if ((orderDay < orderYear && orderDay > orderMonth)) {
    var iDelim1 = orderMonth + MONTH.length;
    var iDelim2 = orderDay + DAY.length;
    var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
    var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
    if (iDelim1 == orderDay && iDelim2 == orderYear) {
    dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
    } else if (iDelim1 == orderDay) {
    dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
    } else if (iDelim2 == orderYear) {
    dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
    } else {
    dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
    var matched = dateRegexp.exec(value);
    if(matched != null) {
    if (!isValidDate(matched[2], matched[1], matched[3])) {
    if (i == 0) {
    focusField = form[oDate[x][0]];
    fields[i++] = oDate[x][1];
    bValid = false;
    } else {
    if (i == 0) {
    focusField = form[oDate[x][0]];
    fields[i++] = oDate[x][1];
    bValid = false;
    } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
    var iDelim1 = orderDay + DAY.length;
    var iDelim2 = orderMonth + MONTH.length;
    var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
    var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
    if (iDelim1 == orderMonth && iDelim2 == orderYear) {
    dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
    } else if (iDelim1 == orderMonth) {
    dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
    } else if (iDelim2 == orderYear) {
    dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
    } else {
    dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
    var matched = dateRegexp.exec(value);
    if(matched != null) {
    if (!isValidDate(matched[1], matched[2], matched[3])) {
    if (i == 0) {
    focusField = form[oDate[x][0]];
    fields[i++] = oDate[x][1];
    bValid = false;
    } else {
    if (i == 0) {
    focusField = form[oDate[x][0]];
    fields[i++] = oDate[x][1];
    bValid = false;
    } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
    var iDelim1 = orderYear + YEAR.length;
    var iDelim2 = orderMonth + MONTH.length;
    var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
    var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
    if (iDelim1 == orderMonth && iDelim2 == orderDay) {
    dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
    } else if (iDelim1 == orderMonth) {
    dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
    } else if (iDelim2 == orderDay) {
    dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
    } else {
    dateRegexp = new Reg

  • STRUTS - Cannot retrieve definition for form bean null -aaaarrrrgh

    Hi Folks,
    my head hurts and i become crazy... i know that a lot of people asked this question before, but i did not found any suitable solution.
    I have simple a jsp page, containing a form which should be handled by struts. I tried everything, but i did not found my mistake.
    Can anyone help me please?
    JSP:
    <%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean"%>
    <%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html"%>
    <%@ page contentType="text/html;charset=windows-1252"%>
    <html:html locale="true">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
    <title>Anmeldung f?r GOLEM Quickplayout</title>
    </head>
    <body>
    <html:errors/>
    <html:form action="checkLogin.do">
      <table cellspacing="3" cellpadding="2" border="0" width="100%" align="left">
        <tr>
          <td>
            <bean:message key="prompt.username"/>
          </td>
          <td>
            <html:text property="username"/>
          </td>
        </tr>
        <tr>
          <td>
            <bean:message key="prompt.password"/>
          </td>
          <td>
            <html:text property="password"/>
          </td>
        </tr>
      </table>
    </html:form>i tryed a lot for the FORM -Tag, for instance:
    <html:form action="checkLogin.do"> or
    <html:form action="/checkLogin.do"> or
    <html:form action="/checkLogin"> but all throws the same exception. :(
    struts-config.xml
      <form-beans>
        <form-bean name="loginForm" type="de.orb.quick.view.LoginForm"/>
      </form-beans>
      <action-mappings>
      <action path="/login" type="de.orb.quick.view.LoginAction" name="loginForm" input="/login.jsp" scope="session" unknown="true">
        <forward name="success" path="/showData.jsp"/>
      </action>
        <action path="/checkLogin" type="de.orb.quick.view.CheckLogonAction" unknown="false" input="/login.jsp">
          <forward name="success" path="/storeRequestData.do"/>
          <forward name="failure" path="/login.do"/>
        </action>
    Exception:
    javax.servlet.jsp.JspException: Cannot retrieve definition for form bean null
         at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:831)
         at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)
         at _login._jspService(login.jsp:11)     [/login.jsp]
    LoginAction:
      public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {
        return mapping.findForward("success");
    LoginForm:
    public class LoginForm extends ActionForm  {
      private String password = "";
      private String username = "";
      public void reset(ActionMapping mapping, HttpServletRequest request) {
        super.reset(mapping, request);
      public ActionErrors validate(ActionMapping mapping, HttpServletRequest request) {
        return super.validate(mapping, request);
      public String getPassword() {
        return password;
      public void setPassword(String password) {
        this.password = password;
      public String getUsername() {
        return username;
      public void setUsername(String username) {
        this.username = username;
      }Sorry for this stupid question, but how can i avoid this exception while using struts TagLibs?
    I tried to face the jsp with another action, but this does not change anything.
    Thank you in advance
    Mirko

    javax.servlet.jsp.JspException: Cannot retrieve definition for form bean myfrom
         at org.apache.struts.taglib.html.FormTag.lookup(FormTag.java:831)
         at org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:506)
         at jsp_servlet.__index._jspService(__index.java:155)
         at weblogic.servlet.jsp.JspBase.service(JspBase.java:33)
         at weblogic.servlet.internal.ServletStubImpl$ServletInvocationAction.run(ServletStubImpl.java:1053)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:387)
         at weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java:305)
         at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:6291)
         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:317)
         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:97)
         at weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletContext.java:3575)
         at weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java:2573)
         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:178)
         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:151)

  • Problem with Validation in Struts

    Dear All,
    I am facing a proble with validation in struts.
    I have got this code in my action class
    //Initial Code...
    ArrayList branches=new ArrayList();
    branches.add("B01", "Main Branch");
    branches.add("B02", "Second Branch");
    branches.add("B03", "Third Branch");
    DynaValidatorForm memberForm=(DynaValidatorForm)form;
    memberForm.set(branches);
    //Finalizing code.....This form is getting validated in validation.xml.
    This action is being forwarded to folllowing JSP.
    //Initial Code...
            <tr>
                <td align="right"><strong>Branch Name </strong></td>
                <td> </td>
                <td align="left">
                    <html:select property="branid">
                        <html:optionsCollection name="memberForm" property="branches" value="key" label="value"/>
                    </html:select>
                </td>
            </tr>
    //Later code...I have action mapping as..
            <action path="/member/save" input="member.page" name="memberForm" validate="true"
            scope="request" type="com.mlm.action.MemberAction" parameter="action">
                <forward name="success" path="/show.do?action=member" redirect="true"/>
            </action>Now, the problem is that when the form doesn't pass the validation then it gives an exception that..
    Can't find collection 'branches' in bean

    sauanu wrote:
    Ok, now I am giving full code of my module...
    Form-bean
    <form-beans>
    <form-bean name="memberForm" type="org.apache.struts.validator.DynaValidatorForm">
    <form-property name="id" type="java.lang.String"/>
    <form-property name="membname" type="java.lang.String"/>
    <form-property name="address" type="java.lang.String"/>
    <form-property name="branid" type="java.lang.String"/>
    <form-property name="branches" type="java.util.ArrayList"/>
    </form-bean>
    </form-beans>Validation is being done for all fileds except "branches". Validation type is "requried"
    My Jsp....
    <html:form action="/member/save?action=save">
    <html:hidden property="id"/>
    <tr>
    <td align="right"><strong>Member Name </strong></td>
    <td> </td>
    <td align="left">
    <html:text property="membname"/>
    </td>
    </tr>
    <tr>
    <td align="right"><strong>Address</strong></td>
    <td> </td>
    <td align="left">
    <html:text property="address"/>
    </td>
    </tr>
    <tr>
    <td align="right"><strong>Branch Name </strong></td>
    <td> </td>
    <td align="left">
    <html:select property="branid">
    <html:optionsCollection name="memberForm" property="branches" />
    </html:select>
    </td>
    </tr>
    <tr>
    <td align="right">
    <html:submit/>
    </td>
    <b><td>   </td></b>
    <td>
    <html:button value="Cancel" onclick="javascript:history.go(-1)" property="cancel"/>
    </td>
    </tr>
    </html:form>This is the code..
    I tried to find out the problem and I found that.. when the form does not pass the validation its input page gets displayed..
    Now, when the input is getting displayed.. "branches" field of the form contains null???Why?
    Edited by: sauanu on ?? ??????, ???? ??:?? ?????????Forget,about Validations.
    Who is forwarding the control to this JSP page or view ??
    Is it Action method code which metioned earlier doing it ??
    Or some other Action is involved if it is some other action please intialize Values of branches component in the respective action.
    Also,
    Also,
    ArrayList branches=new ArrayList();
    branches.add("B01", "Main Branch");
    branches.add("B02", "Second Branch");
    branches.add("B03", "Third Branch"); I believe you need to get a good understanding of Java Collection classes aswell.
    You can add things as entities in the above case lets create a simple java bean named Option.
    public class Option implements Serializable{
        private String label;
        private String value;
        public void setValue(String value){this.value = value;};
        public String getValue(){return this.value;}
        public void setLabel(String label){this.label = label;}
        public String getLabel(){return this.label;}
    } and inside the action which is forwarding to the respective view
    ArrayList branches=new ArrayList();
    Option option = new Option();
    option.setValue("B01");
    option.setLabel("Main Branch");
    branches.add(option);
    option = new Option();
    option.setValue("B02");
    option.setLabel("Second Branch");
    branches.add(option);
    option = new Option();
    option.setValue("B03");
    option.setLabel("Third Branch");
    branches.add(option);
          <html:select property="branid">
                   <html:options name="memberForm" collection="branches"   value="value" label="label" />
           </html:select>and one more thing is is that after the validation if it is not validated it'd be sent back to input page which destorys the request therefore try making scope of "memberForm" to session in your action mappings and check.
    Hope this might help :)
    REGARDS,
    RaHuL

  • Jrun struts oracle jdc - not able to open pages

    Hi,
    I am using JRun4 / JDK1.4.2 with struts. I use Oracle JDBC for RDBMS.
    My prob:
    I am able to open the index page and created a login validation which is done by JDBC. Here I have a bean to validate the login and set the attributes accordingly. Now if I say submit with valid login details, it doesn't go to the next page.
    I have the following log info:
    2702 / 2738 19/09 14:38:44 info [axis] Tiles definition factory found for request processor ''.
    2703 / 2738 19/09 14:38:44 user FlashGatewayServlet: destroy
    2704 / 2738 19/09 14:38:44 user FileServlet: destroy
    2705 / 2738 19/09 14:38:44 error Session data is not serializable (ID=1a302046491095597421138) - session is lost
    2706 / 2738 19/09 14:38:44 info 1 session(s) persisted
    2707 / 2738 19/09 14:42:57 info JRunDataSource bound to JNDI under name ddd
    2708 / 2738 19/09 14:42:57 info JRun DataSourceService: Created JDBC XA Connection Pool named ddd
    2709 / 2738 19/09 14:42:57 info Bound a LinkRef from "DefaultDataSource" to the default DataSource "ddd"
    2710 / 2738 19/09 14:42:57 info JRun Web Server listening on *:9000
    2711 / 2738 19/09 14:42:57 info Deploying enterprise application "JRun 4.0 Internal J2EE Components" from: file:/C:/JRun4/lib/jrun-comp.ear
    2712 / 2738 19/09 14:42:57 info Deploying EJB "JRunSQLInvoker" from: file:/C:/JRun4/lib/jrun-comp.ear
    2713 / 2738 19/09 14:42:58 info Deploying enterprise application "default-ear" from: file:/C:/JRun4/servers/PPTU/default-ear/
    2713 / 2738 19/09 14:42:58 info Deploying enterprise application "default-ear" from: file:/C:/JRun4/servers/PPTU/default-ear/
    2714 / 2738 19/09 14:42:58 info Deploying web application "Struts Blank Application" from: file:/C:/JRun4/servers/PPTU/default-ear/
    2715 / 2738 19/09 14:42:59 info Web Services in default-ear#default-war:
    2716 / 2738 19/09 14:42:59 info AdminService
    2717 / 2738 19/09 14:42:59 user JSPServlet: init
    2718 / 2738 19/09 14:42:59 user action: init
    2719 / 2738 19/09 14:42:59 info [axis] Initializing, config='org.apache.struts.util.LocalStrings', returnNull=true
    2720 / 2738 19/09 14:42:59 info [axis] Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
    2721 / 2738 19/09 14:43:00 info [axis] Initializing, config='resources.application', returnNull=true
    2722 / 2738 19/09 14:43:00 info [axis] Tiles definition factory loaded for module ''.
    2723 / 2738 19/09 14:43:00 info [axis] Loading validation rules file from '/WEB-INF/validator-rules.xml'
    2724 / 2738 19/09 14:43:00 info [axis] Loading validation rules file from '/WEB-INF/validation.xml'
    2725 / 2738 19/09 14:43:00 info Recovering 1 session(s)
    2726 / 2738 19/09 14:43:00 info Deploying web application "Struts Blank Application" from: file:/C:/JRun4/servers/PPTU/DevelopmentProjects.war
    2727 / 2738 19/09 14:43:00 user JSPServlet: init
    2728 / 2738 19/09 14:43:01 user action: init
    2729 / 2738 19/09 14:43:01 info [axis] Initializing, config='org.apache.struts.action.ActionResources', returnNull=true
    2730 / 2738 19/09 14:43:01 info [axis] Initializing, config='resources.application', returnNull=true
    2731 / 2738 19/09 14:43:01 info [axis] Tiles definition factory loaded for module ''.
    2732 / 2738 19/09 14:43:01 info [axis] Loading validation rules file from '/WEB-INF/validator-rules.xml'
    2733 / 2738 19/09 14:43:01 info [axis] Loading validation rules file from '/WEB-INF/validation.xml'
    2734 / 2738 19/09 14:43:01 info Deploying enterprise application "Flash Remoting EAR" from: file:/C:/JRun4/lib/flashgateway.ear
    2735 / 2738 19/09 14:43:01 info Deploying web application "Flash Remoting" from: file:/C:/JRun4/lib/flashgateway.ear
    2736 / 2738 19/09 14:43:01 user JSPServlet: init
    2737 / 2738 19/09 14:43:01 user FlashGatewayServlet: init
    =================
    Can anyone pl. help whatz goin on here???
    Thanks
    sara

    Hi, welcome to OTN form:
    Please paste OS /DB version.
    Please check below Step:
    In Windows:
    C:\Users\a000364>set ORACLE_SID=ORCL
    C:\Users\a000364>echo %ORACLE_SID%
    ORCL
    C:\Users\a000364>sqlplus / as sysdba;
    SQL*Plus: Release 10.1.0.5.0 - Production on Thu Nov 21 15:05:56 2013
    Copyright (c) 1982, 2005, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
    With the Partitioning, OLAP and Data Mining options
    SQL>
    In Linux OS:
    bash-3.2$ export ORACLE_SID=ORCL
    bash-3.2$ echo $ORACLE_SID
    ORCL
    bash-3.2$ sqlplus "/ as sysdba";
    SQL*Plus: Release 11.2.0.3.0 Production on Thu Nov 21 15:06:58 2013
    Copyright (c) 1982, 2011, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing options
    SQL>

Maybe you are looking for

  • 2nd HDD to replace optical drive - B560

    I have seen a thread here (http://forums.lenovo.com/t5/W-Series-ThinkPad-Laptops/2nd-hard-drive-in-a-W510/m-p/346539#M12570) of success replacing the optical drive with a 2nd HDD bay in a y560. I am wrong thinking there is not much difference betwee

  • All my office programs are crashing regularly, especially Outlook!!!

    MS Office programs, all of them, Outlook, Powerpoint, etc. all crashing. Started when I upgraded to Office 2013/365 Every other program is stable on the machine. Removed completely and reinstalled. Remove all display drivers completely and reinstalle

  • How do I movie an iphoto album onto a memory card.

    I need step by step instructions on how to put an iphoto album or pic's from my library onto a memory card for a digital picture frame. Also how to make sure the pics are all the same size and will fit the full frame. I need this asap please, It's fo

  • How to change scrollbar's color in combobox?

    Hi, I changed the combobox's background color to black. But since the little arrow in the scrollbar on the right side of the combobox is black, this makes the arrow vanish. I couldn't find any method in API that can change the color of the arrow/scro

  • LMS 4.2.5 - UserTracking Connected End Host Report not useable

    Hi all, trying to understand the different available UserTracking-Reports (Active End Host Report, Dormant End Host, Connected End Host) provided by UserTracking Summary Portlet I struggled with understanding the Connected End Host Report. In Docs an