protected void onSave(HttpServletRequest request,
                          HttpServletResponse response, ModelAndView mav, boolean isNew)
            throws Exception {
        String vpidstr = request.getParameter("proid");        
        Integer  proid= 0;
        if(vpidstr!=null){
            proid= new Integer(vpidstr);            
        }
        Video video = new Video();
        if(proid != null){
            video = videoManager.findByProductId(proid);
            if(video !=null){
                System.out.println("video 内容 belongs product id is :"+video.getProductId());
            }
        }else{
            video = new Video();
        }
        System.out.println("difficult vpid"+proid);//取得到值
        video.setProductId(proid);//NullPointerException异常?????
        videoManager.save(video);//hibernate封装的saveorupdate();
        String url = "/springside/admin/success.jsp";
        System.out.println(url);
        response.sendRedirect(url);
        return;
    }
Video的Hibernate配置:
<hibernate-mapping package="cn.idmtv.smsc.commons.domain">
    <class name="Video" table="VIDEO">
<id name="id" column="ID">
         <generator class="sequence">
                 <param name="sequence">SEQ_VIDEO</param>
         </generator>
</id>
<property name="productId" column="PRODUCT_ID" not-null="true"/>
 </class>
</hibernate-mapping>
--------------
video.setProductId(proid);中的proid可以取到值,为什么setProductId的时候会出现空指针呢?,就算没值,是不是也不该在这个地方报这样的错误啊?想了一天也没弄明白。帮我看看吧

解决方案 »

  1.   

    看一下你的错误堆栈就一清二楚 nullpointException还是好解的
    如果是video.setProductId(proid);这行抛异常那就是video等于null
      

  2.   

    lz你确定的proid可以取到值吗??
      

  3.   

    proid确实可以取到,video是new的一个对象,要怎样处理它跟null的问题啊?
      

  4.   

    video = videoManager.findByProductId(proid);video本来是new的, 肯定不为null, 这句话又把null赋值给video了所以 下面的video.setProductId(proid); 就抛nullpointException
      

  5.   

    video = videoManager.findByProductId(proid);
    取得的是个空值
      

  6.   

    感谢chg_850321() ,laoxing521(想做程序员的农民),yz_ivan(傻瓜书)  ,确实是你们说的那样的,现在已经好使了。揭帖