springmvc中找不到页面,进入不到方法,并且不报错

在springmvc配置中,出现了两次进入不到action方法中,并花费了大部分时间去找问题,所以详细记录下相关的配置

1.配置的位置:

applicationContext.xml文件,是必须配置的,也是spring的配置:

servlet-context.xml文件,是给Tomcat配置的,可以写,也可以不写,但是如果写的话就一定要注意,因为问题基本都会出现在这个配置上

两种写法:

项目中,在base-package指定的包中有的子包是不含有注解的,所以这些包可以不进行扫描,此时可以指定
<context:exclude-filter>来进行过滤,说明此包不需要被扫描。
Use-dafault-filters=”false”的情况下:<context:exclude-filter>指定的包不进行相应注解的扫描,
<context:include-filter>指定包或其子包进行相应注解的扫描。

不扫描@Controller注解

applicationContext.xml

<mvc:annotation-driven />
        <context:component-scan base-package="包名">
            <context:exclude-filter type="annotation"
                expression="org.springframework.stereotype.Controller" />    
        </context:component-scan>

servlet-context.xml

<!-- 扫描@Controller注解 -->
<mvc:annotation-driven />
		<context:component-scan base-package="包名">
			<context:include-filter type="annotation"
				expression="org.springframework.stereotype.Controller" />	
		</context:component-scan>

区别在于一个用的是include,一个用的是exclude,

spring不仅扫描了@Controller修饰的javaod ,还扫描了指定包或其子包下有@Service
@Repository注解修饰的java类此时指定的include-filter没有起到作用,只要把use-default-filter设置成
false就可以了。这样就可以避免在base-packeage配置多个包名。

第二种写法,个人觉得如果是传统的springmvc,那么第二种方法出错的概率会更小一些

<mvc:annotation-driven />
		<context:component-scan base-package="包名">
		</context:component-scan>

扫描此包下面的所有注解,可以将controller,service等都注入进去,只需要在applicationContext.xml中配置就可以了

还有一个疑惑就是:

springmvc的工作流程就是从controller到service,那么exclude这种配置方法的意义在哪里?

理解:

有的时候会出现框架混用,或者不需要controller中的注解,需要使用service,或者自己想要的注解,这种我自己还没有接触过,所以也只是一个大概的理解。

参考概念:

https://www.jianshu.com/p/72f24dc82560

转载于:https://my.oschina.net/u/3829307/blog/3076341

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值