java.lang.NullPointerException
LoginAction调用DAO时出现空指针异常,代码如下:
package com.hotel.struts.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.log4j.Logger;
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.actions.DispatchAction;
import com.hotel.hibernate.dao.OperatorDAO;
import com.hotel.struts.form.LoginForm;
import com.hotel.struts.util.Constants;
public class LoginAction extends DispatchAction {
protected OperatorDAO operatorDAO ;
Logger log = Logger.getLogger(this.getClass());
public OperatorDAO getOperatorDAO() {
return operatorDAO;
}
public void setOperatorDAO(OperatorDAO operatorDAO) {
this.operatorDAO = operatorDAO;
}
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
ActionMessages messages = new ActionMessages();
ActionForward forward = new ActionForward();
LoginForm loginForm = (LoginForm) form;
// try {
// get parameters
String oid = loginForm.getOid();
// invalidate the original session if exists
HttpSession session = request.getSession(false);
if (session != null) {
session.invalidate();
}
// create a new session for the user
session = request.getSession(true);
// login
boolean isValid = valid(request, loginForm);
if (isValid) {
session.setAttribute(Constants.OPERATOR_KEY, oid);
log.info("Operator " + oid + " login.");
} else {
messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
"login.message.failed"));
}
// } catch (Exception e) {
// messages.add(ActionMessages.GLOBAL_MESSAGE, new ActionMessage(
// "register.message.failed"));
// }
// If a message is required, save the specified key(s)
// into the request for use by the <struts:errors> tag.
if (!messages.isEmpty()) {
saveErrors(request, messages);
request.setAttribute("loginFormBean", loginForm);
forward = mapping.findForward(Constants.FAILURE_KEY);
} else {
forward = mapping.findForward(Constants.SUCCESS_KEY);
}
// Finish with
return (forward);
}
private boolean valid(HttpServletRequest request, LoginForm loginForm) {
if (getOperatorDAO().isValid(loginForm.getOid(),
loginForm.getOpwd())) {
return true;
} else {
return false;
}
}
}