Struts2配置中出现的问题
是用Struts2(struts2-core-2.1.8.jar)、Spring(spring-core-2.5.6.jar)整合,使用Spring管理Struts的Action,出现了一些问题。
1、使用Spring注入的业务逻辑代码,错误提示如下:
java.lang.NullPointerExceptioncn.nmg.archives.action.LoginAction.execute(LoginAction.java:36)
?
?? 36行代码为:
User user = sm.validLogin(name, password);
?
2、没有使用Spring注入的业务逻辑代码,直接在action中处理jsp页面传入的参数,出现以下错误:
No result defined for action cn.nmg.archives.action.LoginAction and result success
?
?? struts.xml片段如下
<package name="SysManage" extends="struts-default"><action name="login" name="code"><form id="form1" action="login.action" method="post"></form>
?
??? 错误分析:Spring针对Struts的注入失败,就算是手动将需要注入的业务逻辑代码new出来,错误依旧。
??? 解决:问题出在了struts.xml配置上,正确的应为:
??
<package name="SysManage" extends="struts-default" namespace="/sys"><action name="login" name="code"><form id="form1" action="sys/login.action" method="post"></form>
?
??? 或者
???
<package name="SysManage" extends="struts-default" namespace="/"><action name="login" name="code"><form id="form1" action="login.action" method="post"></form>
???
??? 原因:namespace="/"弄错了,需要配置上,根据配置不同,调用action的代码也要修改才好。
仔细看看