public org.apache.struts.action.ActionForward | execute(org.apache.struts.action.ActionMapping mapping, org.apache.struts.action.ActionForm form, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
// --------------------------------------------------------- Public Methods
// See superclass for Javadoc
// Extract attributes we will need
HttpSession session = request.getSession();
String action = request.getParameter("action");
if (action == null) {
action = "Create";
}
if (log.isDebugEnabled()) {
log.debug("EditRegistrationAction: Processing " + action + " action");
}
// Is there a currently logged on user?
User user = null;
if (!"Create".equals(action)) {
user = (User) session.getAttribute(Constants.USER_KEY);
if (user == null) {
if (log.isDebugEnabled()) {
log.debug(
" User is not logged on in session " + session.getId());
}
return (mapping.findForward("logon"));
}
}
RegistrationForm regform = (RegistrationForm) form;
if (user != null) {
if (log.isTraceEnabled()) {
log.trace(" Populating form from " + user);
}
try {
PropertyUtils.copyProperties(regform, user);
regform.setAction(action);
regform.setPassword(null);
regform.setPassword2(null);
} catch (InvocationTargetException e) {
Throwable t = e.getTargetException();
if (t == null)
t = e;
log.error("RegistrationForm.populate", t);
throw new ServletException("RegistrationForm.populate", t);
} catch (Throwable t) {
log.error("RegistrationForm.populate", t);
throw new ServletException("RegistrationForm.populate", t);
}
}
// Set a transactional control token to prevent double posting
if (log.isTraceEnabled()) {
log.trace(" Setting transactional control token");
}
saveToken(request);
// Forward control to the edit user registration page
if (log.isTraceEnabled()) {
log.trace(" Forwarding to 'success' page");
}
return (mapping.findForward("success"));
|