Hi,

        I followed the "struts-example/logon.jsp" to create some forms.
I also creates my "tlanForm", follows the example from "logonForm". However,
when the "tlanForm" fails the validation, it returns to the original page
with
"tlanForm" being re-created and resetted (I checked it from "servlet.log").
I could not figure it out. Did somebody has similar experience? I put the
"logon.jsp" in the same directory, and it works fine.

        Here is some code snippet from "struts-config.xml"
===========================================
  <action-mappings>

    <!-- Process a tlan provisioning -->
    <action    path="/tlan"
               type="com.VillageNetworks.tlan.TlanAction"
               name="tlanForm"
              scope="request"
              input="/common/TLAN/provisioning.jsp" >
    </action>

    <!-- Process a user logon -->
    <action    path="/logon"
               type="org.apache.struts.example.LogonAction"
               name="logonForm"
              scope="request"
              input="/common/TLAN/logon.jsp">
    </action>
===========================================

        My "tlanForm" looks like this:
========================================
package com.VillageNetworks.tlan;


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;


/**
 * Form bean for the tlan provisioning page.  This form has the following
fields,
 * with default values in square brackets:
 * <ul>
 * <li><b>customerName</b> - Entered customer Name value
 * <li><b>manTagUsed</b> - whether the Man Tag is used
 * <li><b>mtuSize</b> - Entered Ether MTU Size value
 * <li><b>etherType</b> - Entered Ether Type value
 * </ul>
 *
 * @author Kwang-Shi Shu
 * @version 1.0
 * @Date: 2001/6/14
 */

public final class TlanForm extends ActionForm {


    // --------------------------------------------------- Instance
Variables


    /**
     * The Customer Name.
     */
    private String customerName = null;


    /**
     * Whether the Extreme MAN tag is used.
     */
    private boolean manTagUsed = false;


    /**
     * The Ether MTU Size.
     */
    private String mtuSize = null;

    /**
     * The Ether Type -- in Hexadecimal format, prefixed with 0x.
     */
    private String etherType = null;

    // -----------------------------------------------------------
Properties


    /**
     * Return the Customer Name.
     */
    public String getCustomerName() {

//      servlet.log("Enter TlanForm::getCustomerName");
        return (this.customerName);

    }


    /**
     * Set the customer name.
     *
     * @param customer name The new customer name
     */
    public void setCustomerName(String customerName) {

//      servlet.log("Enter TlanForm::setCustomerName");
        this.customerName = customerName;

    }


    /**
     * Return the manTagUsed.
     */
    public boolean getManTagUsed() {

//      servlet.log("Enter TlanForm::getManTagUsed");
        return (this.manTagUsed);

    }


    /**
     * Set the manTagUsed.
     *
     * @param manTagUsed The new manTagUsed
     */
    public void setManTagUsed(boolean manTagUsed) {

//      servlet.log("Enter TlanForm::setManTagUsed");
        this.manTagUsed = manTagUsed;

    }


    /**
     * Return the mtuSize.
     */
    public String getMtuSize() {

//      servlet.log("Enter TlanForm::getMtuSize");
        return (this.mtuSize);

    }


    /**
     * Set the mtuSize.
     *
     * @param mtuSize The new Ether MTU Size
     */
    public void setMtuSize(String mtuSize) {

//      servlet.log("Enter TlanForm::setMtuSize");
        this.mtuSize = mtuSize;

    }

    /**
     * Return the Ether Type.
     */
    public String getEtherType() {

//      servlet.log("Enter TlanForm::getEtherType");
        return (this.etherType);

    }


    /**
     * Set the etherType.
     *
     * @param etherType The new Ether Type
     */
    public void setEtherType(String etherType) {

        // The ether Type has to be in hexdecial format.
        // If it is not, we prepend it with "0x"

//      servlet.log("Enter TlanForm::setEtherType");

        if ( !etherType.startsWith("0x") )
                this.etherType = "0x" + etherType;
        else
                this.etherType = etherType;

    }
    // --------------------------------------------------------- Public
Methods


    /**
     * Reset all properties to their default values.
     *
     * @param mapping The mapping used to select this instance
     * @param request The servlet request we are processing
     */
     public void reset(ActionMapping mapping, HttpServletRequest request) {

        servlet.log("Enter TlanForm::reset");

/**********
        this.customerName = null;
        this.manTagUsed = false;
        this.mtuSize = null;
        this.etherType = null;
************/

        servlet.log("Leave TlanForm::reset");

    }

    /**
     * Validate the properties that have been set from this HTTP request,
     * and return an <code>ActionErrors</code> object that encapsulates any
     * validation errors that have been found.  If no errors are found,
return
     * <code>null</code> or an <code>ActionErrors</code> object with no
     * recorded error messages.
     *
     * @param mapping The mapping used to select this instance
     * @param request The servlet request we are processing
     */
    public ActionErrors validate(ActionMapping mapping,
                                 HttpServletRequest request) {

        ActionErrors errors = new ActionErrors();

        servlet.log("Enter TlanForm::validate");
        servlet.log("customer Name is: " + customerName);
        servlet.log("Man Tag used is: " + manTagUsed);
        servlet.log("ether Type is: " + etherType);
        servlet.log("ether MTU Size is: " + mtuSize);

        if ((customerName == null) || (customerName.length() < 1)) {
//            errors.add("customerName", new
ActionError("error.customerName.required"));
            errors.add(ActionErrors.GLOBAL_ERROR, new
ActionError("error.customer.required"));
            servlet.log("Add errors for customerName");
        }

        // If MAN Tag is not used, the Ether Type has to be "0x8100"
        // If the MAN tag is used, we have to make sure the ether type does
not conflict
        // with existing public assignments, that are published in
        // http://standards.ieee.org/regauth/ethertype/type-pub.html
        // http://www.netwho.com/frame/ethertype.htm


        if (!manTagUsed) {
                if ( !etherType.equals("0x8100") ) {
 //                 errors.add("etherType", new
ActionError("error.etherType.standard"));
                    errors.add(ActionErrors.GLOBAL_ERROR, new
ActionError("error.etherType.standard"));
                    servlet.log("Add errors for etherType");
                }
        }
        else {
                // check the ether type against the whole set of public assignments
        }

        servlet.log("Leave TlanForm::validate");

        return errors;

    }


}
===================================================================

Shu, Kwang-shi          | Tel 732-460-7848
Village Networks, Inc.  | Fax 732-460-9851
246 Industrial Way West |
Eatontown, NJ 078724    | email: [EMAIL PROTECTED]


>

Reply via email to