You are viewing a plain text version of this content. The canonical link for it is here.
Posted to jetspeed-user@portals.apache.org by Thorsten Berger <be...@imn.htwk-leipzig.de> on 2005/06/19 01:38:32 UTC

struts bridge: ActionForm reset

Hi all.

I'm using the current version of the struts bridge and have a problem 
with error validation in my user registration actions.
My action mappings are:

-------8<-------------------------------------------------------------------------------------------------------
  <global-forwards>
    <forward   name="registration"         path="/UserRegistration.do"/>
  </global-forwards>

  <action-mappings>

      <!-- welcome page as workaround for PB-1, see
             http://issues.apache.org/jira/browse/PB-1 -->
      <action    path="/UserRegistrationStart"
                 
include="/WEB-INF/view/userregistration/UserRegistrationStart.jsp"/>

      <action
          path="/UserRegistration"
          
type="de.thorstenberger.elatePortal.portlets.userregistration.UserRegistrationIndexAction">
          <forward name="success" 
path="/WEB-INF/view/userregistration/UserRegistration.jsp"/>
          <forward name="inactive" path="/UserRegistrationInactive.do" 
redirect="true"/>
      </action>
   
      <action    path="/SubmitUserRegistration"
                 
type="de.thorstenberger.elatePortal.portlets.userregistration.UserRegistrationSubmitAction"
                 name="RegistrationForm"
                 input="registration"
                 scope="request">
          <forward name="success" path="/PendingAccountAdded.do" 
redirect="true"/>
          <forward name="inactive" path="/UserRegistrationInactive.do" 
redirect="true"/>
      </action>

    <action path="/UserRegistrationInactive" 
include="/WEB-INF/view/userregistration/UserRegistrationInactive.jsp"/>
    <action path="/PendingAccountAdded" 
include="/WEB-INF/view/userregistration/PendingAccountAdded.jsp"/>

  </action-mappings>
-------8<-------------------------------------------------------------------------------------------------------

When there are validation errors in the RegistrationForm, the bridge 
forwards (back) to the input path (/UserRegistration) and the 
RenderContext is saved correctly, so error messages appear.
The problem now is, that the reset() method of the RegistrationForm is 
called when the /UserRegistration action forwards again to the jsp, 
resulting in a form with empty textfields and error messages.

I did remote debugging and the app flow is as follows:
- enter /UserRegistration.do by a link on /UserRegistrationStart (see 
issue PB-1)
    -> resets RegistrationForm
- post the form values to /SubmitUserRegistration.do
    -> reset RegistrationForm and populate with the posted values
    -> the following validate() then returns errors
    -> this forwards back to /UserRegistration.do
       -> resets ActionForm again (that should not be the case)

I tried everything to prevent it from resetting the form, but I couldn't 
figure out what's going wrong yet, although I spent a quite huge amount 
of time already ;)
Btw., the actions do work correctly when called standalone.

I would really appreciate some hints pointing me in the right direction. 
Hope I've just overseen something....

Regards,
T. Berger

---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-user-help@portals.apache.org


Re: struts bridge: ActionForm reset

Posted by Thorsten Berger <be...@imn.htwk-leipzig.de>.
Hi Ate,

thanks for your quick response. Hope the following fragments are not too 
huge for one mail ;)

> As you didn't provide all the relevant code its very difficult for me 
> to help you out here.
> Could you post the important parts of your 
> UserRegistrationIndexAction.java, UserRegistration.jsp, 
> UserRegistrationSubmitAction.java and RegistrationForm.java?

Et voilĂ ...

UserRegistrationIndexAction:
-------8<-----------------------------------------------------------------------------
       public ActionForward execute(
                ActionMapping mapping,
                ActionForm form,
                HttpServletRequest request,
                HttpServletResponse response)
                throws Exception {

           UserRegistrationManager urm = 
ElatePortal.getEngine().getUserRegistrationManager();
          
           if( !urm.isActive() )
               return mapping.findForward( "inactive" );
          
           UserRegistrationBean urb = new UserRegistrationBean();
          
           if( urm.isMailDomainRestricted() )
               urb.setMailDomain( urm.getMailDomainRestriction() );
           if( urm.isMustHaveValidCourseKey() )
               urb.setMust_have_key( true );
          

           request.setAttribute( "UserRegistrationBean", urb );
           return mapping.findForward("success");

       }
-------8<-----------------------------------------------------------------------------

UserRegistration.jsp:
(i removed much of unimportant html markup for convenience and left only 
the jsp/struts tags)
-------8<-----------------------------------------------------------------------------
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<%@ taglib uri="http://struts.apache.org/tags-logic" prefix="logic" %>
<%@ taglib 
uri="http://portals.apache.org/bridges/struts/tags-portlet-html" 
prefix="html" %>
<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
<%@taglib uri="http://java.sun.com/jstl/core_rt" prefix="c_rt"%>

<html:errors property="org.apache.struts.action.GLOBAL_MESSAGE"/>

<html:form action="/SubmitUserRegistration" focus="login">

Login/Matrikelnummer:
    <html:errors property="login"/>
    <html:text property="login" size="12"/>

      Vorname:
<html:errors property="surname"/>
<html:text property="user_name_given" size="25"/>

Name:
<html:errors property="name"/>
<html:text property="user_name_family" size="25"/>

E-Mail:
<html:errors property="email"/>
    
    <c:if test="${UserRegistrationBean.mailDomain != null}">
      <html:text property="user_home_info_online_email" size="20"/> @ 
<c:out value="${UserRegistrationBean.mailDomain}"/>
     </c:if>
     <c:if test="${UserRegistrationBean.mailDomain == null}">
            <html:text property="user_home_info_online_email" size="50"/>
      </c:if>
Kennung:
<html:errors property="course_key"/>
    <c:if test="${UserRegistrationBean.must_have_key}">Zur Anmeldung 
ben&ouml;tigen
      Sie eine g&uuml;ltige Kennung.</c:if>
      <c:if test="${!UserRegistrationBean.must_have_key}">Sie
      k&ouml;nnen zus&auml;tzlich eine Kennung angeben, mit der Sie 
sofort zu
      einer Veranstaltung angemeldet werden. Falls Sie keine besitzen, 
lassen
      Sie das Feld einfach leer.</c:if><br><br>
      <html:text property="course_key" size="30"/>


      <html:submit value="Registrieren" 
styleClass="portlet-dlg-icon-label"/>

</html:form>
-------8<-----------------------------------------------------------------------------

UserRegistrationForm:
-------8<-----------------------------------------------------------------------------
public class UserRegistrationForm extends ActionForm{

    static final long serialVersionUID = 0;
   
    private String login;
    private String user_name_given;
    private String user_name_family;
    private String user_home_info_online_email;
    private String course_key;
   
    public UserRegistrationForm(){
       
    }
  
    public String getLogin() {
        return login;
    }
    public void setLogin(String login) {
        this.login = login;
    }
    public String getUser_home_info_online_email() {
        return user_home_info_online_email;
    }
    public void setUser_home_info_online_email(String 
user_home_info_online_email) {
        this.user_home_info_online_email = user_home_info_online_email;
    }
    public String getUser_name_family() {
        return user_name_family;
    }
    public void setUser_name_family(String user_name_family) {
        this.user_name_family = user_name_family;
    }
    public String getUser_name_given() {
        return user_name_given;
    }
    public void setUser_name_given(String user_name_given) {
        this.user_name_given = user_name_given;
    }      
    public String getCourse_key() {
        return course_key;
    }
    public void setCourse_key(String course_key) {
        this.course_key = course_key;
    }

    public ActionErrors validate(ActionMapping mapping,
            HttpServletRequest request) {
     
        ActionErrors errors = new ActionErrors();
               
        if( getLogin() == null || getLogin().length() == 0 )
            errors.add( "login", new ActionMessage( 
"userregistration.login.requiredfield") );
        if( SyntaxChecks.containsHTML(getLogin()) )
            errors.add( "login", new ActionMessage( 
"userregistration.login.invalid") );
       
        if( getUser_name_given() == null || 
getUser_name_given().length() == 0 )
            errors.add( "surname", new ActionMessage( 
"userregistration.surname.requiredfield") );
        if( SyntaxChecks.containsHTML(getUser_name_given()) )
            errors.add( "surname", new ActionMessage( 
"userregistration.surname.invalid") );
       
        if( getUser_name_family() == null || 
getUser_name_family().length() == 0 )
            errors.add( "name", new ActionMessage( 
"userregistration.name.requiredfield") );
        if( SyntaxChecks.containsHTML(getUser_name_family()) )
            errors.add( "name", new ActionMessage( 
"userregistration.name.invalid") );
       
        if( getUser_home_info_online_email() == null || 
getUser_home_info_online_email().length() == 0 )
            errors.add( "email", new ActionMessage( 
"userregistration.email.requiredfield") );
        if( SyntaxChecks.containsHTML(getUser_home_info_online_email()) )
            errors.add( "email", new ActionMessage( 
"userregistration.email.invalid") );

        return errors;
    }
   
    public void reset(ActionMapping mapping, HttpServletRequest request) {
        Thread.dumpStack();
        login = null;
        user_name_given = null;
        user_name_family = null;
        user_home_info_online_email = null;
    }

}
-------8<-----------------------------------------------------------------------------

Finally, the UserRegistrationSubmitAction is never called since there 
are already validation errors in the form.


> Also, a stack trace from the reset method (Thread.dumpStack()) might 
> be very helpful.
>

The stack trace of the last (wrongly called) reset() is:
-------8<-----------------------------------------------------------------------------
java.lang.Exception: Stack trace
        at java.lang.Thread.dumpStack(Thread.java:1158)
        at 
de.thorstenberger.elatePortal.portlets.userregistration.UserRegistrationForm.reset(UserRegistrationForm.java:122)
        at 
org.apache.struts.taglib.html.FormTag.initFormBean(FormTag.java:460)
        at 
org.apache.struts.taglib.html.FormTag.doStartTag(FormTag.java:433)
        at 
org.apache.jsp.WEB_002dINF.view.userregistration.UserRegistration_jsp._jspx_meth_html_form_0(org.apache.jsp.WEB_002dINF.view.userregistration.UserReg
istration_jsp:133)
        at 
org.apache.jsp.WEB_002dINF.view.userregistration.UserRegistration_jsp._jspService(org.apache.jsp.WEB_002dINF.view.userregistration.UserRegistration_j
sp:91)
        at 
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:322)
        at 
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:291)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:241)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
        at 
org.apache.portals.bridges.struts.PortletServletRequestDispatcher.invoke(PortletServletRequestDispatcher.java:128)
        at 
org.apache.portals.bridges.struts.PortletServletRequestDispatcher.forward(PortletServletRequestDispatcher.java:135)
        at 
org.apache.struts.action.RequestProcessor.doForward(RequestProcessor.java:1056)
        at 
org.apache.struts.action.RequestProcessor.processForwardConfig(RequestProcessor.java:388)
        at 
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:231)
        at 
org.apache.portals.bridges.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:50)
        at 
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
        at 
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
        at 
org.apache.portals.bridges.struts.PortletServletRequestDispatcher.invoke(PortletServletRequestDispatcher.java:128)
        at 
org.apache.portals.bridges.struts.PortletServletRequestDispatcher.include(PortletServletRequestDispatcher.java:146)
        at 
org.apache.portals.bridges.struts.PortletServlet.performActionRenderRequest(PortletServlet.java:179)
        at 
org.apache.portals.bridges.struts.PortletRequestProcessor.processRoles(PortletRequestProcessor.java:57)
        at 
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:199)
        at 
org.apache.portals.bridges.struts.PortletRequestProcessor.process(PortletRequestProcessor.java:50)
        at 
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1164)
        at 
org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:397)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
        at 
org.apache.portals.bridges.struts.StrutsPortlet.processRequest(StrutsPortlet.java:335)
        at 
org.apache.portals.bridges.struts.StrutsPortlet.doView(StrutsPortlet.java:263)
        at javax.portlet.GenericPortlet.doDispatch(GenericPortlet.java:247)
        at javax.portlet.GenericPortlet.render(GenericPortlet.java:175)
        at 
org.apache.jetspeed.factory.JetspeedPortletInstance.render(JetspeedPortletInstance.java:96)
        at 
org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:224)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.java:672)
        at 
org.apache.catalina.core.ApplicationDispatcher.doInclude(ApplicationDispatcher.java:574)
        at 
org.apache.catalina.core.ApplicationDispatcher.include(ApplicationDispatcher.java:499)
        at 
org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:212)
        at 
org.apache.jetspeed.container.invoker.ServletPortletInvoker.render(ServletPortletInvoker.java:125)
        at sun.reflect.GeneratedMethodAccessor170.invoke(Unknown Source)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at 
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:284)
        at 
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:163)
        at $Proxy9.render(Unknown Source)
        at 
org.apache.pluto.PortletContainerImpl.renderPortlet(PortletContainerImpl.java:105)
        at 
org.apache.jetspeed.container.JetspeedPortletContainerWrapper.renderPortlet(JetspeedPortletContainerWrapper.java:88)
        at 
org.apache.jetspeed.aggregator.impl.RenderingJob.execute(RenderingJob.java:108)
        at 
org.apache.jetspeed.aggregator.impl.PortletRendererImpl.renderNow(PortletRendererImpl.java:102)
        at 
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:268)
        at 
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.aggregateAndRender(PageAggregatorImpl.java:251)
        at 
org.apache.jetspeed.aggregator.impl.PageAggregatorImpl.build(PageAggregatorImpl.java:148)
        at 
org.apache.jetspeed.aggregator.AggregatorValve.invoke(AggregatorValve.java:48)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:117)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:76)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:134)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:109)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.security.impl.PasswordCredentialValveImpl.invoke(PasswordCredentialValveImpl.java:131)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:117)
        at java.security.AccessController.doPrivileged(Native Method)
        at javax.security.auth.Subject.doAsPrivileged(Subject.java:454)
        at 
org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:111)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:55)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:127)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:124)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invokeNext(JetspeedPipeline.java:203)
        at 
org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:185)
        at 
org.apache.jetspeed.engine.AbstractEngine.service(AbstractEngine.java:264)
        at 
org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:225)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
        at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
        at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
        at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
        at 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
        at 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:407)
        at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
        at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
        at 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
        at 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
        at 
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
        at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:744)
        at 
org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
        at 
org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
        at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
        at java.lang.Thread.run(Thread.java:595)
-------8<-----------------------------------------------------------------------------

Many thanks in advance,
Thorsten


---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-user-help@portals.apache.org


Re: struts bridge: ActionForm reset

Posted by Ate Douma <at...@douma.nu>.
Thorsten,

As you didn't provide all the relevant code its very difficult for me to help you out here.
Could you post the important parts of your UserRegistrationIndexAction.java, UserRegistration.jsp, 
UserRegistrationSubmitAction.java and RegistrationForm.java?
Also, a stack trace from the reset method (Thread.dumpStack()) might be very helpful.

Regards,

Ate

Thorsten Berger wrote:
> Hi all.
> 
> I'm using the current version of the struts bridge and have a problem 
> with error validation in my user registration actions.
> My action mappings are:
> 
> -------8<------------------------------------------------------------------------------------------------------- 
> 
>  <global-forwards>
>    <forward   name="registration"         path="/UserRegistration.do"/>
>  </global-forwards>
> 
>  <action-mappings>
> 
>      <!-- welcome page as workaround for PB-1, see
>             http://issues.apache.org/jira/browse/PB-1 -->
>      <action    path="/UserRegistrationStart"
>                 
> include="/WEB-INF/view/userregistration/UserRegistrationStart.jsp"/>
> 
>      <action
>          path="/UserRegistration"
>          
> type="de.thorstenberger.elatePortal.portlets.userregistration.UserRegistrationIndexAction"> 
> 
>          <forward name="success" 
> path="/WEB-INF/view/userregistration/UserRegistration.jsp"/>
>          <forward name="inactive" path="/UserRegistrationInactive.do" 
> redirect="true"/>
>      </action>
>        <action    path="/SubmitUserRegistration"
>                 
> type="de.thorstenberger.elatePortal.portlets.userregistration.UserRegistrationSubmitAction" 
> 
>                 name="RegistrationForm"
>                 input="registration"
>                 scope="request">
>          <forward name="success" path="/PendingAccountAdded.do" 
> redirect="true"/>
>          <forward name="inactive" path="/UserRegistrationInactive.do" 
> redirect="true"/>
>      </action>
> 
>    <action path="/UserRegistrationInactive" 
> include="/WEB-INF/view/userregistration/UserRegistrationInactive.jsp"/>
>    <action path="/PendingAccountAdded" 
> include="/WEB-INF/view/userregistration/PendingAccountAdded.jsp"/>
> 
>  </action-mappings>
> -------8<------------------------------------------------------------------------------------------------------- 
> 
> 
> When there are validation errors in the RegistrationForm, the bridge 
> forwards (back) to the input path (/UserRegistration) and the 
> RenderContext is saved correctly, so error messages appear.
> The problem now is, that the reset() method of the RegistrationForm is 
> called when the /UserRegistration action forwards again to the jsp, 
> resulting in a form with empty textfields and error messages.
> 
> I did remote debugging and the app flow is as follows:
> - enter /UserRegistration.do by a link on /UserRegistrationStart (see 
> issue PB-1)
>    -> resets RegistrationForm
> - post the form values to /SubmitUserRegistration.do
>    -> reset RegistrationForm and populate with the posted values
>    -> the following validate() then returns errors
>    -> this forwards back to /UserRegistration.do
>       -> resets ActionForm again (that should not be the case)
> 
> I tried everything to prevent it from resetting the form, but I couldn't 
> figure out what's going wrong yet, although I spent a quite huge amount 
> of time already ;)
> Btw., the actions do work correctly when called standalone.
> 
> I would really appreciate some hints pointing me in the right direction. 
> Hope I've just overseen something....
> 
> Regards,
> T. Berger
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
> For additional commands, e-mail: jetspeed-user-help@portals.apache.org
> 
> 
> 
> 
> 



---------------------------------------------------------------------
To unsubscribe, e-mail: jetspeed-user-unsubscribe@portals.apache.org
For additional commands, e-mail: jetspeed-user-help@portals.apache.org