springmvc <mvc-controller/>标签作用以及对拦截器的影响

springmvc<mvc:view-controllerpath= />标签的作用

此标记是用于定义在调用时立即转发到视图的ParameterizableViewController 的快捷方式。在静态情况下, 如果在视图生成响应之前没有要执行的Java 控制器逻辑, 请使用它。即从一个JSP页面直接跳转到另一个JSP页面。

比如说。对于WEB-INF目录下面的JSP页面,我们知道是不能直接使用URL访问到。需要通过转发的方式,而我们一般都是在控制器中做转发映射,对于一些我们不需要其他操作的JSP页面,我们可以使用<mvc:view-controller path=""/>来配置,这样就可以不用再控制器中再去做转发映射

没有使用<mvc:view-controller path= />标签

在WEB-IN下有一个index.jsp页面。


<html>
<body>
<h2>Hello World!</h2>
</body>
</html>

配置一个控制器

@Controller
public class HelloAction {
    public HelloAction(){
        System.out.println("HelloAction:" + this.hashCode());
    }

    @RequestMapping({"/hello","bye"})
    public String hello(Model model){
        System.out.println("HelloAction:hello()" + this.hashCode());
        model.addAttribute("message", "this is the annotation springmvc demo");
        return "index";
    }
}

访问:http://localhost:8888/demo01/hello就可以显示index.jsp页面的内容了

使用<mvc:view-controller path= />标签

在springmvc配置文件中配置

<mvc:view-controllerpath="/index"/>

path是JSP页面相对WEB-INF的路径,名称为视图解析器解析之前的视图逻辑名

下面使用http://localhost:8888/demo01/index就可以显示index.jsp页面的内容了

 

此时分为两种情况:

1. 如果在springmvc配置文件中没有配置

<mvc:annotation-driven></mvc:annotation-driven>

则通过http://localhost:8888/demo01/hello不能访问index.jsp。即配置这个标签之后通过控制器来映射的url无法访问到页面

2. 如果在springmvc配置文件中配置了

<mvc:annotation-driven></mvc:annotation-driven>,那么两种方式都可以访问

<mvc:view-controller path= />标签对拦截器的影响

如我们配置如下的拦截器

    <!--配置拦截器-->
    <mvc:interceptors>
        <mvc:interceptor>
            <mvc:mapping path="/**"/>
            <mvc:exclude-mapping path="/index"/>
                <!--这样配置,将拦截所有springmvc的url-->
                <bean class="interceptor.MyInterceptor1">

                </bean>
        </mvc:interceptor>
    </mvc:interceptors>

当我们访问http://localhost:8888/demo01/index时不经过拦截器;

而访问http://localhost:8888/demo01/hello时要经过拦截器。

参考:

springmvc的拦截器,怎么设置不拦截的url

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值