问题:找不到 stActionBase 描述:
我看的孙卫琴的精通Struts,在第三章的例子上有一个Action类 ,该类 extends stActionBase ,但编译都通不过,该导的包都导入了,请各位大侠帮助,不盛感激! 该类的代码如下.package addressbook.actions;
import java.io.IOException;
import java.util.Hashtable;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.MissingResourceException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.MessageResources;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;import addressbook.Constants;
import addressbook.model.UserBean;
import addressbook.forms.LogonForm;
public final class LogonAction extends AbstActionBase {
private Log log =
LogFactory.getLog(this.getClass().getName());
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception { String userName=null;
String password=null;
Locale locale = getLocale(request);
MessageResources messages = getResources(request); UserBean user = null;
// Demonstrate a trace call to the logger
if (log.isTraceEnabled()) {
log.trace("LogonAction: entering method");
}
// Validate the request parameters specified by the user
ActionMessages errors = new ActionMessages();
if (form != null){
userName = ((LogonForm) form).getUserName();
password = ((LogonForm) form).getPassword();
}
Hashtable database = (Hashtable)
servlet.getServletContext().getAttribute(Constants.DATABASE_KEY);
if (database == null)
errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("error.database.missing"));
else {
user = (UserBean) database.get(userName);
if ((user != null) && !user.getPassword().equals(password)){
user = null;
}
if (user == null)
errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("error.password.mismatch"));
} // Report any errors we have discovered back to the original form
if (!errors.isEmpty()) {
saveErrors(request, errors);
return (new ActionForward(mapping.getInput()));
}
// Save our logged-in user in the session
HttpSession session = request.getSession();
session.setAttribute(Constants.USER_KEY, user);
// Demonstrate a debug call to the logger
if (log.isDebugEnabled()) {
log.debug("LogonAction: User '" + user.getUserName() +
"' logged on in session " + session.getId());
}
// Remove the obsolete form bean
if (mapping.getAttribute() != null) {
if ("request".equals(mapping.getScope()))
request.removeAttribute(mapping.getAttribute());
else
session.removeAttribute(mapping.getAttribute());
} // Forward control to the specified success URI
return (mapping.findForward(Constants.FORWARD_SUCCESS)); }}
我看的孙卫琴的精通Struts,在第三章的例子上有一个Action类 ,该类 extends stActionBase ,但编译都通不过,该导的包都导入了,请各位大侠帮助,不盛感激! 该类的代码如下.package addressbook.actions;
import java.io.IOException;
import java.util.Hashtable;
import java.util.Locale;
import java.util.Properties;
import java.util.ResourceBundle;
import java.util.MissingResourceException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionMessage;
import org.apache.struts.action.ActionMessages;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionServlet;
import org.apache.struts.util.MessageResources;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;import addressbook.Constants;
import addressbook.model.UserBean;
import addressbook.forms.LogonForm;
public final class LogonAction extends AbstActionBase {
private Log log =
LogFactory.getLog(this.getClass().getName());
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response)
throws Exception { String userName=null;
String password=null;
Locale locale = getLocale(request);
MessageResources messages = getResources(request); UserBean user = null;
// Demonstrate a trace call to the logger
if (log.isTraceEnabled()) {
log.trace("LogonAction: entering method");
}
// Validate the request parameters specified by the user
ActionMessages errors = new ActionMessages();
if (form != null){
userName = ((LogonForm) form).getUserName();
password = ((LogonForm) form).getPassword();
}
Hashtable database = (Hashtable)
servlet.getServletContext().getAttribute(Constants.DATABASE_KEY);
if (database == null)
errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("error.database.missing"));
else {
user = (UserBean) database.get(userName);
if ((user != null) && !user.getPassword().equals(password)){
user = null;
}
if (user == null)
errors.add(ActionMessages.GLOBAL_MESSAGE,
new ActionMessage("error.password.mismatch"));
} // Report any errors we have discovered back to the original form
if (!errors.isEmpty()) {
saveErrors(request, errors);
return (new ActionForward(mapping.getInput()));
}
// Save our logged-in user in the session
HttpSession session = request.getSession();
session.setAttribute(Constants.USER_KEY, user);
// Demonstrate a debug call to the logger
if (log.isDebugEnabled()) {
log.debug("LogonAction: User '" + user.getUserName() +
"' logged on in session " + session.getId());
}
// Remove the obsolete form bean
if (mapping.getAttribute() != null) {
if ("request".equals(mapping.getScope()))
request.removeAttribute(mapping.getAttribute());
else
session.removeAttribute(mapping.getAttribute());
} // Forward control to the specified success URI
return (mapping.findForward(Constants.FORWARD_SUCCESS)); }}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货