从jsp调用时在hibernate dao中获取空指针

发布于 2025-01-08 07:57:05 字数 6303 浏览 1 评论 0原文

这是我在 jsp 中的代码,

   <%
        JSonHandler jSonHandler = new JSonHandler();
        jSonHandler.setList(jSonHandler.getHolidayDetails());
        JSONArray obj = jSonHandler.getJsonArray();
    %>

从 JsonHandler 类中,我调用一个返回对象数组列表的 hibernateDAO 方法。但我有一个空指针。

这是我的 JsonHandler 类

public class JSonHandler 
{
    private LeaveAdminDAO leaveAdminDAO = new LeaveAdminHibernateDAO();
    private Map<String, String> map;
    private List<Map<String, String>> list;
    public List<Map<String, String>> getHolidayDetails()
    {
        Calendar currentDate = Calendar.getInstance();
        int year = currentDate.get(Calendar.YEAR);
        List<Holidays> holidayDetails = leaveAdminDAO.getHolidayDetails(year);
        map = new TreeMap<String, String>();
        list = new ArrayList<Map<String, String>>();
        for(int i=0; i<holidayDetails.size(); i++)
        {
            map.put("title", holidayDetails.get(0).getHolidayDescription());
            map.put("start", new SimpleDateFormat("yyyy-MM-dd").format(holidayDetails.get(0).getHolidayDate()));
            list.add(map);
        }
        return list;
    }
    public List<Map<String, String>> getList()
    {
        return list;
    }

    public void setList(List<Map<String, String>> list) 
    {
        this.list = list;
    }

    public JSONArray getJsonArray()
    {
        JSONArray obj = JSONArray.fromObject(list);
        return obj;
    }

有人帮助我提前致谢。

StackTrace:

java.lang.NullPointerException
    com.experion.lts.util.JSonHandler.getHolidayDetails(JSonHandler.java:28)
    org.apache.jsp.views.markholidays_jsp._jspService(markholidays_jsp.java:72)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:653)
    org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:647)
    org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:103)
    org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:96)
    org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44)
    org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
    org.apache.tiles.renderer.impl.ChainedDelegateAttributeRenderer.write(ChainedDelegateAttributeRenderer.java:76)
    org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:336)
    org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:210)
    org.apache.tiles.template.InsertAttributeModel.end(InsertAttributeModel.java:126)
    org.apache.tiles.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:311)
    org.apache.jsp.views.layout.MainLayout_jsp._jspx_meth_tiles_005finsertAttribute_005f2(MainLayout_jsp.java:196)
    org.apache.jsp.views.layout.MainLayout_jsp._jspService(MainLayout_jsp.java:111)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:241)
    org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:222)
    org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44)
    org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:690)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:644)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:627)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:321)
    org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:124)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    com.experion.lts.filters.SecurityFilter.doFilter(SecurityFilter.java:48)

DAO 代码:

public List<Holidays> getHolidayDetails(int year)
    {
        try
        {
            List<Holidays> holidayDetails = getHibernateTemplate().find("from Holidays where holidayId = 1");
            return holidayDetails;
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return null;
        }
    }

Here is my code in jsp,

   <%
        JSonHandler jSonHandler = new JSonHandler();
        jSonHandler.setList(jSonHandler.getHolidayDetails());
        JSONArray obj = jSonHandler.getJsonArray();
    %>

And from the JSonHandler class ,I am calling a hibernateDAO method that returns an arraylist of object. But I've got a null pointer instead.

This is my JSonHandler class

public class JSonHandler 
{
    private LeaveAdminDAO leaveAdminDAO = new LeaveAdminHibernateDAO();
    private Map<String, String> map;
    private List<Map<String, String>> list;
    public List<Map<String, String>> getHolidayDetails()
    {
        Calendar currentDate = Calendar.getInstance();
        int year = currentDate.get(Calendar.YEAR);
        List<Holidays> holidayDetails = leaveAdminDAO.getHolidayDetails(year);
        map = new TreeMap<String, String>();
        list = new ArrayList<Map<String, String>>();
        for(int i=0; i<holidayDetails.size(); i++)
        {
            map.put("title", holidayDetails.get(0).getHolidayDescription());
            map.put("start", new SimpleDateFormat("yyyy-MM-dd").format(holidayDetails.get(0).getHolidayDate()));
            list.add(map);
        }
        return list;
    }
    public List<Map<String, String>> getList()
    {
        return list;
    }

    public void setList(List<Map<String, String>> list) 
    {
        this.list = list;
    }

    public JSONArray getJsonArray()
    {
        JSONArray obj = JSONArray.fromObject(list);
        return obj;
    }

Someone help me thanks in advance.

StackTrace:

java.lang.NullPointerException
    com.experion.lts.util.JSonHandler.getHolidayDetails(JSonHandler.java:28)
    org.apache.jsp.views.markholidays_jsp._jspService(markholidays_jsp.java:72)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.runtime.JspRuntimeLibrary.include(JspRuntimeLibrary.java:968)
    org.apache.jasper.runtime.PageContextImpl.doInclude(PageContextImpl.java:653)
    org.apache.jasper.runtime.PageContextImpl.include(PageContextImpl.java:647)
    org.apache.tiles.jsp.context.JspTilesRequestContext.include(JspTilesRequestContext.java:103)
    org.apache.tiles.jsp.context.JspTilesRequestContext.dispatch(JspTilesRequestContext.java:96)
    org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44)
    org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
    org.apache.tiles.renderer.impl.ChainedDelegateAttributeRenderer.write(ChainedDelegateAttributeRenderer.java:76)
    org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:336)
    org.apache.tiles.template.InsertAttributeModel.renderAttribute(InsertAttributeModel.java:210)
    org.apache.tiles.template.InsertAttributeModel.end(InsertAttributeModel.java:126)
    org.apache.tiles.jsp.taglib.InsertAttributeTag.doTag(InsertAttributeTag.java:311)
    org.apache.jsp.views.layout.MainLayout_jsp._jspx_meth_tiles_005finsertAttribute_005f2(MainLayout_jsp.java:196)
    org.apache.jsp.views.layout.MainLayout_jsp._jspService(MainLayout_jsp.java:111)
    org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:386)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    org.apache.tiles.servlet.context.ServletTilesRequestContext.forward(ServletTilesRequestContext.java:241)
    org.apache.tiles.servlet.context.ServletTilesRequestContext.dispatch(ServletTilesRequestContext.java:222)
    org.apache.tiles.renderer.impl.TemplateAttributeRenderer.write(TemplateAttributeRenderer.java:44)
    org.apache.tiles.renderer.impl.AbstractBaseAttributeRenderer.render(AbstractBaseAttributeRenderer.java:106)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:670)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:690)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:644)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:627)
    org.apache.tiles.impl.BasicTilesContainer.render(BasicTilesContainer.java:321)
    org.springframework.web.servlet.view.tiles2.TilesView.renderMergedOutputModel(TilesView.java:124)
    org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:250)
    org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1047)
    org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:817)
    org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    com.experion.lts.filters.SecurityFilter.doFilter(SecurityFilter.java:48)

DAO Code:

public List<Holidays> getHolidayDetails(int year)
    {
        try
        {
            List<Holidays> holidayDetails = getHibernateTemplate().find("from Holidays where holidayId = 1");
            return holidayDetails;
        }
        catch(Exception e)
        {
            e.printStackTrace();
            return null;
        }
    }

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

吾性傲以野 2025-01-15 07:57:05

您在这里遇到了异常:

    try
    {
        List<Holidays> holidayDetails = getHibernateTemplate().find("from Holidays where holidayId = 1");
        return holidayDetails;
    }
    catch(Exception e)
    {
        e.printStackTrace();
        return null;
    }

捕获该异常并返回 null,然后该 null 结果会在其他类中导致 NullPointerException。您需要找到正在打印的堆栈跟踪 (e.printStackTrace()) 以了解导致该异常的原因。

You are getting an exception here:

    try
    {
        List<Holidays> holidayDetails = getHibernateTemplate().find("from Holidays where holidayId = 1");
        return holidayDetails;
    }
    catch(Exception e)
    {
        e.printStackTrace();
        return null;
    }

You catch the exception and return null, and then that null result causes a NullPointerException in your other class. You need to find the stack trace that you are printing (e.printStackTrace()) to know what's causing that exception.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文