yes, it goes to execute method of ShowXAction.

Pankaj Borgaonkar wrote:

Did u checked that after validate is the control is going to ShowXAction
this method ?

-----Original Message-----
From: Tuna Vardar [mailto:[EMAIL PROTECTED] Sent: Wednesday, July 30, 2003 8:45 PM
To: Struts Users Mailing List
Subject: Re: Lost form data after form.validate() and issuing error
messages



Hello again,


I wrote struts-config.xml wrong, the rright one is as follows:

  <!-- -->
  <action path="/showx"
      attribute="XForm"
      scope="request"
      validate="false"
      type="com.xxx.yyy.ShowXAction">
    <forward name="success" path="/x.jsp"/>
  </action>

  <!-- -->
  <action path="/x"
      name="XForm"
      scope="request"
      input="/showx.do"
      validate="true"
      type="com.xxx.yyy.XAction">
    <forward name="success" path="/showy.do"/>
  </action>

cheers,
tuna

Tuna Vardar wrote:



Hello,

I lose all form data if validate returns error for the form input. If





action goes through validation without creating of any errors, XAction





works fine. ShowXAction is used to display jsp and jsp posts to XAction. Any comments?
You can see the code below.


cheers,
tuna

*************************

ShowXAction.java looks like follows:

public final class ShowXAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm


form,


          HttpServletRequest request, HttpServletResponse response)
          throws Exception{

// Update form data
if (form == null) {
form = new XForm();
if ("request".equals(mapping.getScope()))
request.setAttribute(mapping.getAttribute(), form);
else
session.setAttribute(mapping.getAttribute(), form);
}
XForm f = (XForm)form;
f.setA("...");
f.setB("...");
//ensure, that form is submited only once
saveToken(request); return mapping.findForward("success");


}

XAction.java looks like:

public final class XAction extends Action {

public ActionForward execute(ActionMapping mapping, ActionForm


form,


          HttpServletRequest request, HttpServletResponse response)
          throws Exception {
                   XForm f = (XForm)form;

XBean b = new XBean(f.getA(), f.getB());
b.store();
//ensure, that form is submited only once
saveToken(request); return mapping.findForward("success");
}



and struts-config.xml is like follows:


  <!-- -->
  <action path="/showx"
      attribute="XForm"
      scope="request"
      validate="false"
      type="com.xxx.yyy.ShowXAction">
    <forward name="success" path="/x.jsp"/>
  </action>

  <!-- -->
  <action path="/x"
      name="XForm"
      scope="request"
      input="/x.do"
      validate="true"
      type="com.xxx.yyy.XAction">
    <forward name="success" path="/showy.do"/>
  </action>


and finally XForm is like follows:


public final class XForm extends ActionForm {

  private String a = null;
    private String b = null;
    public String getA() {
      return this.a;
  }

  public void setA(String a) {
      this.a = a;
  }
    public String getB() {
      return this.b;
  }
    public void setB(String b) {
      this.b = b;
  }
    public void reset(ActionMapping mapping, HttpServletRequest
request) {
            this.a = null;
      this.b = null;

}

  public ActionErrors validate(ActionMapping mapping,
                               HttpServletRequest request) {

ActionErrors errors = new ActionErrors();
if ((this.a == null) || (this.a.trim().length() == 0)) {
errors.add(ActionErrors.GLOBAL_ERROR, new
ActionError("form.a.missing"));
}
if ((this.b == null) || (this.b.trim().length() == 0)) {
errors.add(ActionErrors.GLOBAL_ERROR, new ActionError("form.b.missing"));
}
return errors;
}


  public String toString() {
      StringBuffer sb = new StringBuffer("XForm[");
      sb.append("a=").append(this.a);
      sb.append(",b=").append(this.b);
      return sb.toString();
  }

}


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to