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" %>
<[EMAIL PROTECTED] uri="http://java.sun.com/jstl/core" prefix="c"%>
<[EMAIL PROTECTED] 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ötigen
Sie eine gültige Kennung.</c:if>
<c:if test="${!UserRegistrationBean.must_have_key}">Sie
können zusä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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]