大家好,在公司长时间没做codeing工作,对一些简单基础的框架运用生疏了好多好多,现阶段重新拾起编码能力,自己搭建简单的ssh2整合框架,遇到了让我很困惑的问题,希望能得到大家的帮助和解决。先在这谢谢你们!我的问题是:我在web界面index.jsp请求struts2配置中的一个action。action调用hibernate自动生成的dao.findALL方法查询到数据,action成功,返回success.jsp。
但让我非常困惑的是如果action名称为"employee",请求就会失败:
<action name="employee" class="EmployeeAction"> 就会抛空指针异常
Messages:
File: com/wr/action/EmployeeAction.java
Line number: 28
--------------------------------------------------------------------------------
Stacktraces
java.lang.NullPointerException
com.wr.action.EmployeeAction.execute(EmployeeAction.java:28)
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)
只要action名称随便改一个,比如说employee123 ,
<action name="employee123" class="EmployeeAction"> 再次请求action,程序就能正常访问,且正常跳转到success.jsp页面来。这问题已困扰两天了。刚无意中改下action名称才发现这错误的地方。我的问题是:为什么action名称不能使用"employee",和哪些地方配置有冲突?可我也没发现和哪些配置名称有冲突的地方。不知道了。希望能得到贴里朋友的分析帮助和指点。先谢谢你们。Web框架Java
但让我非常困惑的是如果action名称为"employee",请求就会失败:
<action name="employee" class="EmployeeAction"> 就会抛空指针异常
Messages:
File: com/wr/action/EmployeeAction.java
Line number: 28
--------------------------------------------------------------------------------
Stacktraces
java.lang.NullPointerException
com.wr.action.EmployeeAction.execute(EmployeeAction.java:28)
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)
只要action名称随便改一个,比如说employee123 ,
<action name="employee123" class="EmployeeAction"> 再次请求action,程序就能正常访问,且正常跳转到success.jsp页面来。这问题已困扰两天了。刚无意中改下action名称才发现这错误的地方。我的问题是:为什么action名称不能使用"employee",和哪些地方配置有冲突?可我也没发现和哪些配置名称有冲突的地方。不知道了。希望能得到贴里朋友的分析帮助和指点。先谢谢你们。Web框架Java
@Override
public String execute() throws Exception {
List<Employee> employees = employeeDAO.findAll();
return SUCCESS;
}
这样写你确定是执行的是com.wr.action.EmployeeAction这个类下的方法
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>EmployeeAction.java中对象也已经声明了吧,否则action名称为employee123 它也不会执行成功啊