为什么springmvc的controller不能注入

imarshal 2017-06-11 09:02:26
就象struts和spring整合时,把actiont注入一样,springmvc应该怎么写啊
...全文
1301 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
formonitor 2017-06-12
  • 打赏
  • 举报
回复
引用 2楼我是你的主体 的回复:
[quote=引用 1 楼 csdn19900419 的回复:] 我不清楚你是什么意思, 你是用@autowired注入的吗?可能因为controller不在spring容器里,所以@autoeired找不到他?
不是的,就是在springmvc-servlet.xml中定义的controller bean,class要写完整的包名类名,我是想和struts的action一样,把这个class换成applicationContext.xml中注入的bean id,试了试好像不可以,为什么啊[/quote]你是想把controller配置在spring里, 然后在springmvc.xml里引用它(再配置一下,只是类路径处改成spring容器里的beanid)对吗? 似乎在spring4版本里,你只需要在spring里配置或扫描controller,无需在springmvc.xml里引用,也可以成功使用。 但为什么要这么做呢?层次多混乱?
imarshal 2017-06-12
  • 打赏
  • 举报
回复
引用 1 楼 csdn19900419 的回复:
我不清楚你是什么意思, 你是用@autowired注入的吗?可能因为controller不在spring容器里,所以@autoeired找不到他?
不是的,就是在springmvc-servlet.xml中定义的controller bean,class要写完整的包名类名,我是想和struts的action一样,把这个class换成applicationContext.xml中注入的bean id,试了试好像不可以,为什么啊
formonitor 2017-06-12
  • 打赏
  • 举报
回复
引用 9楼我是你的主体 的回复:
[quote=引用 7 楼 csdn19900419 的回复:] springmvc本来就不需要配置listener。 只需要在web.xml配置一下despatcher即可。 然后在springmvc.xml里配置批量扫描controller就行了。
我知道springmvc的用法,就是和struts对比,配置ContextLoaderListener可以自动加载applicationContext.xml,然后里面的类能注入,为什么controller不能象action一样的用法啊[/quote]可以啊。 controller直接通过spring配置文件加载进application里, 而且不需要在springmvc.xml再配置引用。 当然,能不能正常使用是和spring版本有关的。据说4.2是可以的。3不行。 所以,还是不要这么搞了。就把controller注入到springmvc容器里得了。
imarshal 2017-06-12
  • 打赏
  • 举报
回复
引用 7 楼 csdn19900419 的回复:
springmvc本来就不需要配置listener。 只需要在web.xml配置一下despatcher即可。 然后在springmvc.xml里配置批量扫描controller就行了。
我知道springmvc的用法,就是和struts对比,配置ContextLoaderListener可以自动加载applicationContext.xml,然后里面的类能注入,为什么controller不能象action一样的用法啊
formonitor 2017-06-12
  • 打赏
  • 举报
回复
也可能是我理解错你的意思了?
formonitor 2017-06-12
  • 打赏
  • 举报
回复
引用 6楼我是你的主体 的回复:
[quote=引用 5 楼 csdn19900419 的回复:] 你要只是嫌写class全路径麻烦的话,springmvc不是也有扫描批量配置的方法吗?
就是springmvc和spring整合,象struts一样,写路径的话不需要在web.xml中配置ContextLoaderListener啊[/quote]springmvc本来就不需要配置listener。 只需要在web.xml配置一下despatcher即可。 然后在springmvc.xml里配置批量扫描controller就行了。
imarshal 2017-06-12
  • 打赏
  • 举报
回复
引用 5 楼 csdn19900419 的回复:
你要只是嫌写class全路径麻烦的话,springmvc不是也有扫描批量配置的方法吗?
就是springmvc和spring整合,象struts一样,写路径的话不需要在web.xml中配置ContextLoaderListener啊
四月不及你 2017-06-12
  • 打赏
  • 举报
回复
可以使用springMvc的@Controllre注解,
在springMvc配置文件里配置扫描Controller层注解

@Controller
@RequestMapping("book")
public class BookController extends BaseController

}

springMvc配置:

<!-- 扫描项目中com.jk.shop.controller包下所有的类,从而使类中的@Controller注解生效 -->
<mvc:annotation-driven />
<context:component-scan base-package="com.dangdang.bookshop.controller"/>
imarshal 2017-06-12
  • 打赏
  • 举报
回复
引用 14 楼 dietime1943 的回复:
这样啊 <bean name="页面请求的action" class="自定义Controller类"> <property name="类中的service"> <ref bean="spring配置文件中service的bean的配置" /> </property> </bean> 或者用@Autowired 注解啊
我意思是"自定义Controller类"不写包名类名,而是写在applicationContext.xml中注入的bean id,不知道为什么不可以啊
bluetata 2017-06-12
  • 打赏
  • 举报
回复
这样啊 <bean name="页面请求的action" class="自定义Controller类"> <property name="类中的service"> <ref bean="spring配置文件中service的bean的配置" /> </property> </bean> 或者用@Autowired 注解啊
imarshal 2017-06-12
  • 打赏
  • 举报
回复
引用 12 楼 csdn19900419 的回复:
.....哦我忘了,是用注解方式可以映射到
不太想用注解的方式,简单说就是springmvc的controller和struts的action有什么区别啊,代码上看差不多,但action可以在applicationContext.xml中注入,controller好像不可以
formonitor 2017-06-12
  • 打赏
  • 举报
回复
引用 11楼我是你的主体 的回复:
[quote=引用 10 楼 csdn19900419 的回复:] 可以啊。 controller直接通过spring配置文件加载进application里, 而且不需要在springmvc.xml再配置引用。 当然,能不能正常使用是和spring版本有关的。据说4.2是可以的。3不行。 所以,还是不要这么搞了。就把controller注入到springmvc容器里得了。
具体怎么用,有没有代码,springmvc-servlet.xml中不配置那controller的访问地址在哪设置啊[/quote].....哦我忘了,是用注解方式可以映射到
imarshal 2017-06-12
  • 打赏
  • 举报
回复
引用 10 楼 csdn19900419 的回复:
可以啊。 controller直接通过spring配置文件加载进application里, 而且不需要在springmvc.xml再配置引用。 当然,能不能正常使用是和spring版本有关的。据说4.2是可以的。3不行。 所以,还是不要这么搞了。就把controller注入到springmvc容器里得了。
具体怎么用,有没有代码,springmvc-servlet.xml中不配置那controller的访问地址在哪设置啊
formonitor 2017-06-12
  • 打赏
  • 举报
回复
你要只是嫌写class全路径麻烦的话,springmvc不是也有扫描批量配置的方法吗?
imarshal 2017-06-12
  • 打赏
  • 举报
回复
引用 3 楼 csdn19900419 的回复:
你是想把controller配置在spring里, 然后在springmvc.xml里引用它(再配置一下,只是类路径处改成spring容器里的beanid)对吗? 似乎在spring4版本里,你只需要在spring里配置或扫描controller,无需在springmvc.xml里引用,也可以成功使用。 但为什么要这么做呢?层次多混乱?
对,xml配置的方式,不用注解,怎么混乱了,struts就是这样的啊,我是把struts代码改成springmvc,基本可以一一对应
formonitor 2017-06-11
  • 打赏
  • 举报
回复
我不清楚你是什么意思, 你是用@autowired注入的吗?可能因为controller不在spring容器里,所以@autoeired找不到他?

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧