问题描述
我在页面请求这个action的时候,userinfoSerive始终为空,不明白是为什么。spring3+ibatis3+struts2web.xml如下:Java代码1.<filter>2.<filter-name>struts2</filter-name>3.<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>4.</filter>5.<filter-mapping>6.<filter-name>struts2</filter-name>7.<url-pattern>*.action</url-pattern>8.</filter-mapping>9.<filter-mapping>10.<filter-name>struts2</filter-name>11.<url-pattern>*.jsp</url-pattern>12.</filter-mapping>13.<listener>14.<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>15.</listener>spring配置注入如下:Java代码1.<beanid="springUserinfoDao"class="com.easyui.model.dao.UserinfoDao">2.<propertyname="sqlMapClient"ref="sqlMapClient"></property>3.</bean>4.5.<beanid="springUserinfoService"class="com.easyui.model.service.UserinfoSerive">6.<propertyname="genericDAO"ref="springUserinfoDao"></property>7.</bean>8.9.<beanid="springUserinfoAction"class="com.easyui.web.action.UserinfoAction">10.<propertyname="userinfoService"ref="springUserinfoService"></property>11.</bean>sqlMapConfig.xmlJava代码1.<sqlMapConfig>2.<sqlMapresource="com/easyui/model/entity/Userinfo.xml"/>3.</sqlMapConfig>userinfo.xmlJava代码1.<struts>2.<packagename="userinfo"extends="default">3.<actionname="userinfo"class="springUserinfoAction">4.<result>/ok.jsp</result>5.</action>6.</package>7.</struts>action如下:Java代码1.privateIUserinfoServiceuserinfoService;2.3.@Override4.publicStringexecute(){5.try{6.System.out.println(userinfoService);7.data=userinfoService.findAll();8.returnSUCCESS;9.}catch(Exceptione){10.e.printStackTrace();11.returnERROR;12.}13.}14.publicvoidsetUserinfoService(IUserinfoServiceuserinfoService){15.this.userinfoService=userinfoService;16.System.out.println("-->"+this.userinfoService);17.}我的tomcat6启动信息:只贴部分信息:Deployingwebapplicationdirectorydocs2010-10-1116:53:36org.apache.catalina.startup.HostConfigdeployDirectory信息:Deployingwebapplicationdirectoryeasyui2010-10-1116:53:38org.apache.catalina.core.ApplicationContextlog信息:InitializingSpringrootWebApplicationContext-->com.easyui.model.service.UserinfoSerive@c05d952010-10-1116:53:45org.apache.catalina.startup.HostConfigdeployDirectory信息:Deployingwebapplicationdirectoryexamples2010-10-1116:53:45org.apache.catalina.core.ApplicationContextlog信息:ContextListener:contextInitialized()2010-10-1116:53:45org.apache.catalina.core.ApplicationContextlog信息:SessionListener:contextInitialized()2010-10-1116:53:45org.apache.catalina.startup.HostConfigdeployDirectory信息:Deployingwebapplicationdirectoryfile2010-10-1116:53:45org.apache.catalina.startup.HostConfigdeployDirectory信息:DeployingwebapplicationdirectoryROOT2010-10-1116:53:45org.apache.coyote.http11.Http11Protocolstart信息:StartingCoyoteHTTP/1.1onhttp-80862010-10-1116:53:45org.apache.jk.common.ChannelSocketinit信息:JK:ajp13listeningon/0.0.0.0:80092010-10-1116:53:45org.apache.jk.server.JkMainstart信息:JkrunningID=0time=0/50config=null2010-10-1116:53:45org.apache.catalina.startup.Catalinastart信息:Serverstartupin9646ms现在说问题:我在页面请求这个action的时候,userinfoSerive始终为空,不明白是为什么。还有我单元测试的时候都OK。下面是单元测试代码:Java代码1.@Before2.publicvoidsetUp()3.{4.userinfoActon=(UserinfoAction)getBean("springUserinfoAction");5.}6.@Test7.publicvoidfindAll()8.{9.System.out.println(userinfoActon.execute());10.}项目构架是:struts2+Spring3+Ibatis3困惑中,欢迎大家解惑。
解决方案
解决方案二:
加油,好好学校
解决方案三:
userinfoSerive这个没有set方法。在action中添加set方法就ok
解决方案四:
不会,不明白,顶
解决方案五:
该回复于2010-12-02 15:53:53被版主删除
解决方案六:
引用2楼yjflinchong的回复:
userinfoSerive这个没有set方法。在action中添加set方法就ok
14.publicvoidsetUserinfoService(IUserinfoServiceuserinfoService){15.this.userinfoService=userinfoService;16.System.out.println("-->"+this.userinfoService);17.}这不是有吗?启动还输出了
解决方案七:
顶,这个问题碰到过,就是忘记是怎么回事了~唉~~
解决方案八:
看上去是你的action创建没有交给Spring去管理,插件的JAR包都齐了么?还有就是XML文件里面改成这个试试<url-pattern>/*</url-pattern>
解决方案:
引用7楼chris1012f的回复:
看上去是你的action创建没有交给Spring去管理,插件的JAR包都齐了么?还有就是XML文件里面改成这个试试XMLcode<url-pattern>/*</url-pattern>
我试下,我也觉得我的spring和struts好像没关联上。
解决方案:
引用7楼chris1012f的回复:
看上去是你的action创建没有交给Spring去管理,插件的JAR包都齐了么?还有就是XML文件里面改成这个试试XMLcode<url-pattern>/*</url-pattern>
试了,还是不行。
解决方案:
struts2-spring-plugin-2.2.1.jar这个jar包放进lib里面了么
解决方案:
9.<filter-mapping>10.<filter-name>struts2</filter-name>11.<url-pattern>*.jsp</url-pattern>12.</filter-mapping>
把这行代码也删了,一步一步排错,看看是哪里出了问题。
解决方案:
学习中...
解决方案:
问题已解决!action的name不能叫userinfo
解决方案:
.......神奇
解决方案:
怪了......
解决方案:
该回复于2010-12-03 13:45:55被版主删除
解决方案:
ibatis,其中xml内,多一个表内没有的字段,那么就运行不通过!这点比较郁闷,没有啥提示,就是空的。运行不通过。要是有提示就好了!哎!
解决方案:
luguo
解决方案:
引用13楼j_863268304的回复:
问题已解决!action的name不能叫userinfo
<packagename="userinfo"extends="default"><actionname="userinfo"class="springUserinfoAction">是这里的配置问题吗?