`
wuyoubf
  • 浏览: 38058 次
  • 性别: Icon_minigender_1
  • 来自: 呼和浩特
社区版块
存档分类
最新评论

Struts2配置中出现的问题

阅读更多

是用Struts2(struts2-core-2.1.8.jar)、Spring(spring-core-2.5.6.jar)整合,使用Spring管理Struts的Action,出现了一些问题。

1、使用Spring注入的业务逻辑代码,错误提示如下:

java.lang.NullPointerException
	cn.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" class="loginAction">
		<result name="success">/sys/main.jsp</result>
		<result name="login">/login.jsp</result>
	</action>
</package>

 

    jsp文件中调用action代码如下:

<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" class="loginAction">
		<result name="success">/sys/main.jsp</result>
		<result name="login">/login.jsp</result>
	</action>
</package>

    对应的调用代码为:

   

<form id="form1" action="sys/login.action" method="post">
</form>

 

    或者

   

<package name="SysManage" extends="struts-default" namespace="/">
	<action name="login" class="loginAction">
		<result name="success">/sys/main.jsp</result>
		<result name="login">/login.jsp</result>
	</action>
</package>

    对应的调用代码为:

   

<form id="form1" action="login.action" method="post">
</form>

   

    原因:namespace="/"弄错了,需要配置上,根据配置不同,调用action的代码也要修改才好。

分享到:
评论
1 楼 film 2010-05-04  
仔细看看

相关推荐

Global site tag (gtag.js) - Google Analytics