我最近在做了一个人力管理系统,但在编写登陆时出错了。
数据库是oracle数据库。用applicationContext.xml文件连接数据库。/**
 * 登录方法  登录后根据该用户的权限显示树
 * @param mapping
 * @param form
 * @param request
 * @param response
 * @return
 */
public ActionForward doLogin(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
UsersForm usersForm = (UsersForm) form;// TODO Auto-generated method stub
Users user=this.usersBiz.login(usersForm.getUser().getName(), usersForm.getUser().getPassword());
if (user!=null)
{
List<String> quanxian=user.getQuanxian();
String ids=quanxian.toString();
ids=ids.substring(1,ids.length()-1);
List<Catalog> catalogs=this.catalogBiz.findByIds(ids);
String treeData=this.getTreeDataByList(catalogs);
request.getSession().setAttribute("treeData", treeData);
request.getSession().setAttribute("user", user);
return mapping.findForward("main");
}
else
{
return mapping.findForward("login");
}
}
错误提示:javax.servlet.ServletException: java.lang.NullPointerException
org.apache.struts.action.RequestProcessor.processException(RequestProcessor.java:535)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:433)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.jb.common.filter.LanguageFilter.doFilter(LanguageFilter.java:19)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)
root cause java.lang.NullPointerException
com.hr.struts.action.UsersAction.getTreeDataByList(UsersAction.java:73)
com.hr.struts.action.UsersAction.doLogin(UsersAction.java:48)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
javax.servlet.http.HttpServlet.service(HttpServlet.java:641)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
org.jb.common.filter.LanguageFilter.doFilter(LanguageFilter.java:19)
org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:75)

解决方案 »

  1.   

    getTreeDataByList方法是个什么样的?
      

  2.   


    /**
     * 拼出mztreeview需要的字符串
     * @param lst
     * @return
     */
    public String getTreeDataByList(List<Catalog> lst)
    {
    StringBuffer sb=new StringBuffer();
    sb.append("var data={};");
    sb.append("\n\t\t\t");
    sb.append("data['-1_0']='text:HR系统功能树;';");
    sb.append("\n\t\t\t");
    for(Catalog cata : lst)
    {
    if(!cata.getCatalogUrl().equals(""))
    {
    sb.append("data['" + cata.getCatalogParent() + "_" + cata.getCatalogId() +"']='text:" + cata.getCatalogName() + "; url:" + cata.getCatalogUrl() + "; target:frmMain; checked:true;'");
    sb.append("\n\t\t\t");
    }
    else
    {
    sb.append("data['" + cata.getCatalogParent() + "_" + cata.getCatalogId() +"']='text:" + cata.getCatalogName() + "; url:#';");
    sb.append("\n\t\t\t");
    }
    }
    return sb.toString();
    }