You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@struts.apache.org by hu...@apache.org on 2005/12/08 03:50:47 UTC
svn commit: r354948 - in /struts/apps/trunk/mailreader/src:
java/org/apache/struts/apps/mailreader/actions/ webapp/ webapp/WEB-INF/
Author: husted
Date: Wed Dec 7 18:50:41 2005
New Revision: 354948
URL: http://svn.apache.org/viewcvs?rev=354948&view=rev
Log:
MailReader
* Rename "action" field to "task" field, to avoid the smurf affect :)
* JavaDoc field keys
* Other minor refactorings
Modified:
struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java
struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java
struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java
struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java
struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java
struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java
struts/apps/trunk/mailreader/src/webapp/Registration.jsp
struts/apps/trunk/mailreader/src/webapp/Subscription.jsp
struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml
Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/BaseAction.java Wed Dec 7 18:50:41 2005
@@ -30,10 +30,12 @@
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.DynaActionForm;
+import org.apache.struts.action.ActionMessage;
import org.apache.struts.apps.mailreader.Constants;
import org.apache.struts.apps.mailreader.dao.UserDatabase;
import org.apache.struts.apps.mailreader.dao.User;
import org.apache.struts.apps.mailreader.dao.Subscription;
+import org.apache.struts.apps.mailreader.dao.ExpiredPasswordException;
import org.apache.struts.actions.MappingDispatchAction;
/**
@@ -101,6 +103,45 @@
}
/**
+ * <p>Confirm user credentials. Post any errors and return User object
+ * (or null).</p>
+ *
+ * @param database Database in which to look up the user
+ * @param username Username specified on the logon form
+ * @param password Password specified on the logon form
+ * @param errors ActionMessages queue to passback errors
+ *
+ * @return Validated User object or null
+ * @throws org.apache.struts.apps.mailreader.dao.ExpiredPasswordException to be handled by Struts exception
+ * processor via the action-mapping
+ */
+ User doGetUser(UserDatabase database, String username,
+ String password, ActionMessages errors)
+ throws ExpiredPasswordException {
+
+ User user = null;
+ if (database == null){
+ errors.add(
+ ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("error.database.missing"));
+ }
+ else {
+ user = database.findUser(username);
+ if ((user != null) && !user.getPassword().equals(password)) {
+ user = null;
+ }
+ if (user == null) {
+ errors.add(
+ ActionMessages.GLOBAL_MESSAGE,
+ new ActionMessage("error.password.mismatch"));
+ }
+ }
+
+ return user;
+
+ }
+
+ /**
* <p>
* Return a reference to the UserDatabase
* or null if the database is not available.
@@ -275,6 +316,26 @@
throw new ServletException(message, e);
}
}
+
+ /**
+ * <p>Store User object in client session.
+ * If user object is null, any existing user object is removed.</p>
+ *
+ * @param request The request we are processing
+ * @param user The user object returned from the database
+ */
+ void doCacheUser(HttpServletRequest request, User user) {
+
+ HttpSession session = request.getSession();
+ session.setAttribute(Constants.USER_KEY, user);
+ if (log.isDebugEnabled()) {
+ log.debug(
+ "LogonAction: User '"
+ + user.getUsername()
+ + "' logged on in session "
+ + session.getId());
+ }
+ }
/**
* <p>
Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogoffAction.java Wed Dec 7 18:50:41 2005
@@ -29,9 +29,9 @@
import org.apache.struts.apps.mailreader.dao.User;
/**
- * Implementation of <strong>Action</strong> that processes a
- * user logoff.
- *
+ * <p>
+ * Log user out of the current session.
+ * </p>
* @version $Rev$ $Date$
*/
public final class LogoffAction extends BaseAction {
@@ -46,11 +46,9 @@
HttpServletResponse response)
throws Exception {
- // Extract attributes we will need
+ // Log event
HttpSession session = request.getSession();
- User user = (User) session.getAttribute(Constants.USER_KEY);
-
- // Process this user logoff
+ User user = doGetUser(session);
if (user != null) {
if (log.isDebugEnabled()) {
log.debug(
@@ -65,10 +63,13 @@
"LogoffActon: User logged off in session " + session.getId());
}
}
+
+ // Process user logoff by removing session attributes
session.removeAttribute(Constants.SUBSCRIPTION_KEY);
session.removeAttribute(Constants.USER_KEY);
session.invalidate();
+ // Done
return doFindSuccess(mapping);
}
Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/LogonAction.java Wed Dec 7 18:50:41 2005
@@ -19,16 +19,11 @@
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
-import javax.servlet.http.HttpSession;
-import org.apache.commons.beanutils.PropertyUtils;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
-import org.apache.struts.apps.mailreader.Constants;
-import org.apache.struts.apps.mailreader.dao.ExpiredPasswordException;
import org.apache.struts.apps.mailreader.dao.User;
import org.apache.struts.apps.mailreader.dao.UserDatabase;
@@ -42,76 +37,14 @@
/**
* Name of username field ["username"].
*/
- static String USERNAME = "username";
+ public static String USERNAME = "username";
/**
* Name of password field ["password"].
*/
- static String PASSWORD = "password";
+ public static String PASSWORD = "password";
- // ------------------------------------------------------ Protected Methods
-
- /**
- * <p>Confirm user credentials. Post any errors and return User object
- * (or null).</p>
- *
- * @param database Database in which to look up the user
- * @param username Username specified on the logon form
- * @param password Password specified on the logon form
- * @param errors ActionMessages queue to passback errors
- *
- * @return Validated User object or null
- * @throws ExpiredPasswordException to be handled by Struts exception
- * processor via the action-mapping
- */
- User getUser(UserDatabase database, String username,
- String password, ActionMessages errors) throws ExpiredPasswordException {
-
- User user = null;
- if (database == null){
- errors.add(
- ActionMessages.GLOBAL_MESSAGE,
- new ActionMessage("error.database.missing"));
- }
- else {
- user = database.findUser(username);
- if ((user != null) && !user.getPassword().equals(password)) {
- user = null;
- }
- if (user == null) {
- errors.add(
- ActionMessages.GLOBAL_MESSAGE,
- new ActionMessage("error.password.mismatch"));
- }
- }
-
- return user;
-
- }
-
-
- /**
- * <p>Store User object in client session.
- * If user object is null, any existing user object is removed.</p>
- *
- * @param request The request we are processing
- * @param user The user object returned from the database
- */
- void SaveUser(HttpServletRequest request, User user) {
-
- HttpSession session = request.getSession();
- session.setAttribute(Constants.USER_KEY, user);
- if (log.isDebugEnabled()) {
- log.debug(
- "LogonAction: User '"
- + user.getUsername()
- + "' logged on in session "
- + session.getId());
- }
-
- }
-
- // --------------------------------------------------------- Public Methods
+ // ---- Public Methods ----
/**
* Use "username" and "password" fields from ActionForm to retrieve a User
@@ -133,16 +66,12 @@
HttpServletResponse response)
throws Exception {
- // Local variables
+ // Retrieve user
UserDatabase database = doGetUserDatabase();
- String username = (String) PropertyUtils.getSimpleProperty(form,
- USERNAME);
- String password = (String) PropertyUtils.getSimpleProperty(form,
- PASSWORD);
+ String username = doGet(form, USERNAME);
+ String password = doGet(form, PASSWORD);
ActionMessages errors = new ActionMessages();
-
- // Retrieve user
- User user = getUser(database,username,password,errors);
+ User user = doGetUser(database,username,password,errors);
// Report back any errors, and exit if any
if (!errors.isEmpty()) {
@@ -150,8 +79,10 @@
return (mapping.getInputForward());
}
- SaveUser(request,user);
+ // Cache user object in session to signify logon
+ doCacheUser(request,user);
+ // Done
return doFindSuccess(mapping);
}
Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/RegistrationAction.java Wed Dec 7 18:50:41 2005
@@ -37,13 +37,40 @@
// --- Public Constants --
- public final static String ACTION = "action";
+ /**
+ * Name of task field ["task"].
+ */
+ public final static String TASK = "task";
+
+ /**
+ * Name of fromAddress field ["fromAddress"].
+ */
public final static String FROM_ADDRESS = "fromAddress";
+
+ /**
+ * Name of fullName field ["fullName"].
+ */
public final static String FULL_NAME = "fullName";
+
+ /**
+ * Name of password field ["password"].
+ */
public final static String PASSWORD = "password";
+
+ /**
+ * Name of password2 field ["password2"].
+ */
public final static String PASSWORD2 = "password2";
+
+ /**
+ * Name of replyToAddress field ["replyToAddress"].
+ */
public final static String REPLY_TO_ADDRESS = "replyToAddress";
- public final static String USERNAME = "username";
+
+ /**
+ * Name of username field ["username"].
+ */
+ public final static String USERNAME = "username";
// ---- Private Methods ----
@@ -145,7 +172,7 @@
try {
PropertyUtils.copyProperties(form, user);
DynaActionForm dyna = (DynaActionForm) form;
- dyna.set(ACTION,title);
+ dyna.set(TASK,title);
dyna.set(PASSWORD,null);
dyna.set(PASSWORD2,null);
} catch (InvocationTargetException e) {
Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/SubscriptionAction.java Wed Dec 7 18:50:41 2005
@@ -24,11 +24,34 @@
// --- Public Constants --
- public final static String ACTION = "action";
+ /**
+ * Name of task field ["task"].
+ */
+ public final static String TASK = "task";
+
+ /**
+ * Name of autoConnect field ["autoConnect"].
+ */
public final static String AUTO_CONNECT = "autoConnect";
+
+ /**
+ * Name of host field ["host"].
+ */
public final static String HOST = "host";
+
+ /**
+ * Name of password field ["password"].
+ */
public final static String PASSWORD = "password";
+
+ /**
+ * Name of type field ["type"].
+ */
public final static String TYPE = "type";
+
+ /**
+ * Name of username field ["username"].
+ */
public final static String USERNAME = "username";
// ---- Private Methods ----
@@ -103,7 +126,7 @@
try {
PropertyUtils.copyProperties(form, subscription);
- doSet(form,ACTION,title);
+ doSet(form,TASK,title);
} catch (InvocationTargetException e) {
Throwable t = e.getTargetException();
if (t == null) t = e;
@@ -181,7 +204,7 @@
ActionForward result = Edit(mapping,form,request,response);
- doSet(form,ACTION,method);
+ doSet(form,TASK,method);
return result;
}
@@ -224,7 +247,7 @@
if (subscription==null) return doFindFailure(mapping);
session.setAttribute(Constants.SUBSCRIPTION_KEY, subscription);
doPopulate(form,subscription);
- doSet(form,ACTION,method);
+ doSet(form,TASK,method);
}
return doFindSuccess(mapping);
@@ -262,7 +285,7 @@
return doFindSuccess(mapping);
}
- String action = doGet(form,ACTION);
+ String action = doGet(form,TASK);
Subscription subscription = doGetSubscription(request);
boolean isDelete = action.equals("Delete");
if (isDelete) {
Modified: struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java (original)
+++ struts/apps/trunk/mailreader/src/java/org/apache/struts/apps/mailreader/actions/WelcomeAction.java Wed Dec 7 18:50:41 2005
@@ -32,7 +32,10 @@
/**
* <p>
- * Confirm required resources are available. If a resource is missing,
+ * Confirm required resources are available before displaying initial page.
+ * </p>
+ * <p>
+ * If a resource is missing,
* forward to "failure". Otherwise, forward to "success", where
* success is usually the "welcome" page.
* </p>
Modified: struts/apps/trunk/mailreader/src/webapp/Registration.jsp
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/webapp/Registration.jsp?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/webapp/Registration.jsp (original)
+++ struts/apps/trunk/mailreader/src/webapp/Registration.jsp Wed Dec 7 18:50:41 2005
@@ -5,11 +5,11 @@
<html:html>
<head>
-<logic:equal name="RegistrationForm" property="action"
+<logic:equal name="RegistrationForm" property="task"
scope="request" value="Create">
<title><bean:message key="registration.title.create"/></title>
</logic:equal>
-<logic:equal name="RegistrationForm" property="action"
+<logic:equal name="RegistrationForm" property="task"
scope="request" value="Edit">
<title><bean:message key="registration.title.edit"/></title>
</logic:equal>
@@ -21,7 +21,7 @@
<html:form action="/SaveRegistration" focus="username"
onsubmit="return validateRegistrationForm(this);">
-<html:hidden property="action"/>
+<html:hidden property="task"/>
<table border="0" width="100%">
<tr>
@@ -29,16 +29,12 @@
<bean:message key="prompt.username"/>:
</th>
<td align="left">
- <logic:equal name="RegistrationForm" property="action"
+ <logic:equal name="RegistrationForm" property="task"
scope="request" value="Create">
<html:text property="username" size="16" maxlength="16"/>
</logic:equal>
- <logic:equal name="RegistrationForm" property="action"
+ <logic:equal name="RegistrationForm" property="task"
scope="request" value="Edit">
-<%--
- <bean:write name="RegistrationForm" property="username"
- scope="request" filter="true"/>
---%>
<html:hidden property="username" write="true"/>
</logic:equal>
</td>
@@ -109,7 +105,7 @@
</table>
</html:form>
-<logic:equal name="RegistrationForm" property="action"
+<logic:equal name="RegistrationForm" property="task"
scope="request" value="Edit">
<div align="center">
Modified: struts/apps/trunk/mailreader/src/webapp/Subscription.jsp
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/webapp/Subscription.jsp?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/webapp/Subscription.jsp (original)
+++ struts/apps/trunk/mailreader/src/webapp/Subscription.jsp Wed Dec 7 18:50:41 2005
@@ -5,15 +5,15 @@
<html:html>
<head>
-<logic:equal name="SubscriptionForm" property="action"
+<logic:equal name="SubscriptionForm" property="task"
scope="request" value="Create">
<title><bean:message key="subscription.title.create"/></title>
</logic:equal>
-<logic:equal name="SubscriptionForm" property="action"
+<logic:equal name="SubscriptionForm" property="task"
scope="request" value="Delete">
<title><bean:message key="subscription.title.delete"/></title>
</logic:equal>
-<logic:equal name="SubscriptionForm" property="action"
+<logic:equal name="SubscriptionForm" property="task"
scope="request" value="Edit">
<title><bean:message key="subscription.title.edit"/></title>
</logic:equal>
@@ -24,7 +24,7 @@
<html:errors/>
<html:form action="/SaveSubscription" focus="host">
-<html:hidden property="action"/>
+<html:hidden property="task"/>
<table border="0" width="100%">
<tr>
@@ -41,11 +41,11 @@
<bean:message key="prompt.mailHostname"/>:
</th>
<td align="left">
- <logic:equal name="SubscriptionForm" property="action"
+ <logic:equal name="SubscriptionForm" property="task"
scope="request" value="Create">
<html:text property="host" size="50"/>
</logic:equal>
- <logic:notEqual name="SubscriptionForm" property="action"
+ <logic:notEqual name="SubscriptionForm" property="task"
scope="request" value="Create">
<html:hidden property="host" write="true"/>
</logic:notEqual>
@@ -93,19 +93,19 @@
<tr>
<td align="right">
- <logic:equal name="SubscriptionForm" property="action"
+ <logic:equal name="SubscriptionForm" property="task"
scope="request" value="Create">
<html:submit property="DO_SUBMIT">
<bean:message key="button.save"/>
</html:submit>
</logic:equal>
- <logic:equal name="SubscriptionForm" property="action"
+ <logic:equal name="SubscriptionForm" property="task"
scope="request" value="Delete">
<html:submit property="DO_SUBMIT">
<bean:message key="button.confirm"/>
</html:submit>
</logic:equal>
- <logic:equal name="SubscriptionForm" property="action"
+ <logic:equal name="SubscriptionForm" property="task"
scope="request" value="Edit">
<html:submit property="DO_SUBMIT">
<bean:message key="button.save"/>
@@ -113,7 +113,7 @@
</logic:equal>
</td>
<td align="left">
- <logic:notEqual name="SubscriptionForm" property="action"
+ <logic:notEqual name="SubscriptionForm" property="task"
scope="request" value="Delete">
<html:reset property="DO_RESET">
<bean:message key="button.reset"/>
Modified: struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml
URL: http://svn.apache.org/viewcvs/struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml?rev=354948&r1=354947&r2=354948&view=diff
==============================================================================
--- struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml (original)
+++ struts/apps/trunk/mailreader/src/webapp/WEB-INF/struts-config.xml Wed Dec 7 18:50:41 2005
@@ -44,7 +44,7 @@
<!-- RegistrationAction form bean -->
<form-bean name="RegistrationForm"
type="org.apache.struts.validator.DynaValidatorForm">
- <form-property name="action" type="java.lang.String" initial="Create"/>
+ <form-property name="task" type="java.lang.String" initial="Create"/>
<form-property name="fromAddress" type="java.lang.String"/>
<form-property name="fullName" type="java.lang.String"/>
<form-property name="password" type="java.lang.String"/>
@@ -56,7 +56,7 @@
<!-- Subscription form bean -->
<form-bean name="SubscriptionForm"
type="org.apache.struts.validator.DynaValidatorForm">
- <form-property name="action" type="java.lang.String" initial="Create"/>
+ <form-property name="task" type="java.lang.String" initial="Create"/>
<form-property name="autoConnect" type="java.lang.Boolean" initial="FALSE" reset="true"/>
<form-property name="host" type="java.lang.String" />
<form-property name="password" type="java.lang.String" />
@@ -109,6 +109,12 @@
<forward name="Success" path="/MainMenu.do"/>
</action>
+ <!-- Display MainMenu -->
+ <action path="/MainMenu"
+ type="org.apache.struts.apps.mailreader.actions.MainMenuAction">
+ <forward name="Success" path="/MainMenu.jsp" />
+ </action>
+
<!-- Process a user logoff -->
<action path="/Logoff"
type="org.apache.struts.apps.mailreader.actions.LogoffAction">
@@ -141,7 +147,7 @@
extends="//BaseAction"
parameter="Save"
validate="true">
- <forward name="Success" path="/MainMenu.jsp"/>
+ <forward name="Success" path="/MainMenu.do"/>
</action>
<!-- Matches SaveSubscription action -->
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@struts.apache.org
For additional commands, e-mail: dev-help@struts.apache.org