通过struts的零配置得不到spring创建的action对象,但是struts本身的配置能得到
搞了好久没搞懂什么原因。。struts-spring-plugin 和 struts-codebehind-plugin 的包也引了的 <filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>
com.bonc.excelimport.action
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>这个是struts零配置相关 <bean id="action" class="com.bonc.excelimport.action.ImportExcelAction" scope="prototype">
<property name="busi" ref="busi"></property>
</bean>
这个是spring的配置
<struts>
<constant name="struts.codebehind.pathPrefix" value="/pages/" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
<action name="import" class="com.bonc.excelimport.action.ImportExcelAction">
<result name="success">
/pages/ImportExcel.jsp
</result>
</action>
</package>
</struts> struts的配置访问 http://localhost:8080/EXCELimport/ImportExcel.action 用<s:debug> 标签看到的是ActionSuport
访问 http://localhost:8080/EXCELimport/import.action 用<s:debug> 标签看到的是就是ImportExcelAction这个类了 而且action中的属性busi也注入进去了
搞了好久没搞懂什么原因。。struts-spring-plugin 和 struts-codebehind-plugin 的包也引了的 <filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
<init-param>
<param-name>actionPackages</param-name>
<param-value>
com.bonc.excelimport.action
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>*.action</url-pattern>
</filter-mapping>这个是struts零配置相关 <bean id="action" class="com.bonc.excelimport.action.ImportExcelAction" scope="prototype">
<property name="busi" ref="busi"></property>
</bean>
这个是spring的配置
<struts>
<constant name="struts.codebehind.pathPrefix" value="/pages/" />
<constant name="struts.devMode" value="true" />
<package name="default" extends="struts-default">
<action name="import" class="com.bonc.excelimport.action.ImportExcelAction">
<result name="success">
/pages/ImportExcel.jsp
</result>
</action>
</package>
</struts> struts的配置访问 http://localhost:8080/EXCELimport/ImportExcel.action 用<s:debug> 标签看到的是ActionSuport
访问 http://localhost:8080/EXCELimport/import.action 用<s:debug> 标签看到的是就是ImportExcelAction这个类了 而且action中的属性busi也注入进去了
解决方案 »
- IMB jdk1.5 部署项目 在tomcat6下启动报java.lang.ClassNotFoundException: javax.jws.WebServi
- EJB3.0 一对一映射 报不能找到实体bean错误
- 对Web项目中的乱码问题的些许揣测(望纠正)
- BS/CS混合架构下的单点登录如何做?
- 无法创建sessionFactory ioc 容器中
- jsp???
- webwork2文件下载中出现中文名字错误~ 请大家帮我看一下啊!
- 请教一个用request传送ResultSet的问题(随便给分)
- jsf组件之间的传参问题
- socket服务端问题,怎么判断客户端已经关闭?急!!!
- Java工程中的xml文件中的超链接地址已无效,如何解决?
- ajax dwr如何存储request对象
1.引入struts-spring-plugin.jar
2.更改struts的objectFactory创建action方式.可以在struts.properties与struts.xml中改都可以。
如在:struts.properties加入:struts.objectFactory = spring
3.在spring 配置文件中声明struts中的action,配置对应的属性。
4.修改struts配置文件的class="com.bonc.excelimport.action.ImportExcelAction" 改为class="spring中定义的beanId"
个人认为你就做了第一步骤。其他几步也要加入。