Action
----------------------------------------------------------------
public ActionForward register(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{ UserForm userForm = (UserForm) form;
User user = null;
String ccode = (String) request.getSession().getAttribute("ccode");
String checkcode = userForm.getCcode();
try
{
if (ccode.equals(checkcode))
{
user = this.userDao.findUserByUserName(userForm.getUserid());
if (user == null)
{
user = new User(userForm.getUserid(),
userForm.getUserpwd(), userForm.getUserques(),
userForm.getUserans(), userForm.getUsermail(),
userForm.getIntegral(), userForm.getGrade(),
userForm.getSex(), userForm.getRealname());
this.userDao.register(user);
request.setAttribute("userid", userForm.getUserid());
request.setAttribute("grade", userForm.getGrade());
return mapping.findForward("registersuccess");
} else
{
ActionMessages errors = new ActionMessages();
errors.add("exist", new ActionMessage("user.userid.exist"));
super.saveMessages(request, errors);
return mapping.getInputForward();
}
} else
{
ActionMessages errors = new ActionMessages();
errors.add("checkcode", new ActionMessage("user.ccode.error"));
super.saveErrors(request, errors);
return mapping.getInputForward();
}
} catch (Exception e)
{
e.printStackTrace();
return mapping.findForward("registererror");
}
}
----------------------------------------------------------------
IUserDaoImpl
----------------------------------------------------------------
public User findUserByUserName(String username) throws Exception
{
User user=null;
Query q =super.getSession().createQuery("from User as u where u.userid=?");
q.setString(0, username);
List<User> list = q.list();
if(list.size()>0)
{
user = list.get(0);
}
return user;
}
----------------------------------------------------------------
报出的错误
user = this.userDao.findUserByUserName(userForm.getUserid()); 为空指针异常求解,那里出了问题
----------------------------------------------------------------
public ActionForward register(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception
{ UserForm userForm = (UserForm) form;
User user = null;
String ccode = (String) request.getSession().getAttribute("ccode");
String checkcode = userForm.getCcode();
try
{
if (ccode.equals(checkcode))
{
user = this.userDao.findUserByUserName(userForm.getUserid());
if (user == null)
{
user = new User(userForm.getUserid(),
userForm.getUserpwd(), userForm.getUserques(),
userForm.getUserans(), userForm.getUsermail(),
userForm.getIntegral(), userForm.getGrade(),
userForm.getSex(), userForm.getRealname());
this.userDao.register(user);
request.setAttribute("userid", userForm.getUserid());
request.setAttribute("grade", userForm.getGrade());
return mapping.findForward("registersuccess");
} else
{
ActionMessages errors = new ActionMessages();
errors.add("exist", new ActionMessage("user.userid.exist"));
super.saveMessages(request, errors);
return mapping.getInputForward();
}
} else
{
ActionMessages errors = new ActionMessages();
errors.add("checkcode", new ActionMessage("user.ccode.error"));
super.saveErrors(request, errors);
return mapping.getInputForward();
}
} catch (Exception e)
{
e.printStackTrace();
return mapping.findForward("registererror");
}
}
----------------------------------------------------------------
IUserDaoImpl
----------------------------------------------------------------
public User findUserByUserName(String username) throws Exception
{
User user=null;
Query q =super.getSession().createQuery("from User as u where u.userid=?");
q.setString(0, username);
List<User> list = q.list();
if(list.size()>0)
{
user = list.get(0);
}
return user;
}
----------------------------------------------------------------
报出的错误
user = this.userDao.findUserByUserName(userForm.getUserid()); 为空指针异常求解,那里出了问题
userDao
userForm
其中userDao为Null的可能性要大一些。
注入不成功?
--------------------------------------------------------------------
<bean id="userDao" class="com.adam.mldn.struts.dao.impl.IUserDaoImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean name="/register" class="com.adam.mldn.struts.action.UserAction">
<property name="userDao" ref="userDao"></property>
</bean>
--------------------------------------------------------------------
如果是userDao为null 那应该如何做呢?
DelegatingRequestProcessor 配了没有?
setUserDao方法实现了没有?
http://www.ibm.com/developerworks/java/library/j-sr2/index.html
DelegatingRequestProcessor 配了没有