使用的版本为:struts2.1.8+hibernate3.2+spring2.5
applicationContext.xml配置如下:
<bean id="dao" class="com.xwx.dao.UserService">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="userAction" class="com.xwx.action.UserAction">
<property name="us" ref="dao"/>
</bean>struts.xml配置如下:
<constant name="struts.objectFactory" value="org.apache.struts2.spring.StrutsSpringObjectFactory" />    <package name="user" namespace="/" extends="struts-default">
        <action name="userAction" class="userAction" >
         <result>/ok.jsp</result>
        </action>
    </package>页面代码如下:
  <s:form action="userAction" method="post">
   <s:textfield name="u.name" label="name"/><br/>
   <s:textfield name="u.password" label="password"/><br/>
   <s:submit/>
  </s:form>
其它的userAction与dao层就不贴了,没意义启动正常,页面正常显示,表单提交时,出现如下错误
type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception Unable to instantiate Action, userAction,  defined for 'userAction' in namespace '/'userAction
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:307)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
root cause java.lang.ClassNotFoundException: userAction
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1516)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1361)
com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:146)
com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:96)
com.opensymphony.xwork2.spring.SpringObjectFactory.getClassInstance(SpringObjectFactory.java:212)
com.opensymphony.xwork2.spring.SpringObjectFactory.buildBean(SpringObjectFactory.java:132)
com.opensymphony.xwork2.ObjectFactory.buildBean(ObjectFactory.java:139)
com.opensymphony.xwork2.ObjectFactory.buildAction(ObjectFactory.java:109)
com.opensymphony.xwork2.DefaultActionInvocation.createAction(DefaultActionInvocation.java:288)
com.opensymphony.xwork2.DefaultActionInvocation.init(DefaultActionInvocation.java:388)
com.opensymphony.xwork2.DefaultActionProxy.prepare(DefaultActionProxy.java:187)
org.apache.struts2.impl.StrutsActionProxy.prepare(StrutsActionProxy.java:61)
org.apache.struts2.impl.StrutsActionProxyFactory.createActionProxy(StrutsActionProxyFactory.java:39)
com.opensymphony.xwork2.DefaultActionProxyFactory.createActionProxy(DefaultActionProxyFactory.java:47)
org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:478)
org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.
--------------------------------------------------------------------------------

解决方案 »

  1.   

       你看一下你那个userAction写的估计有问题。。 特别是哪个报错的namespace
      

  2.   

    没有找到userAction,lz看看自己是否写错了,一般struts与spring结合class都是action类的第一个字母小写即可。
    还要在struts中加入这一句即可
    struts.objectFactory=spring
      

  3.   

    <constant name="struts.objectFactory" value="spring" />
    试试
      

  4.   

    struts2中的 form提交方式是你 写的那样吗?userAction