使用Struts2需要注意的事项——ActionContext对象实例不当引发的怪异错误!Unable to instantiate Action

今天使用Struts2的时候遇到一个怪异的问题,首先在struts.xml中配置的action是没有问题的,Java类也写好了。但是运行的时候报 告如下错误:

    javax.servlet.ServletException: Unable to instantiate Action, cn.edu.cup.actions.JobManager,  defined for 'jobList' in namespace '/'null - action - file:/K:/Softwares/%E6%95%99%E5%AD%A6%E7%9B%B8%E5%85%B3

    经过网上仔细搜索发现,根本原因在于我在方法中使用了 Student s = (Student) session.getAttribute("user"); 其中session是在构造函数中获取的。但是,通过分析Struts的原理(参见http://t8500071.javaeye.com/blog /348057),由于Action先于ActionContext对象实例之前创建,所以session对象是null,因此,会报告空指针错误!

    明白了上述原理后,将获取session的语句从构造函数中删除,放到方法中,程序终于正常了!

你可能感兴趣的:(使用Struts2需要注意的事项——ActionContext对象实例不当引发的怪异错误!Unable to instantiate Action)