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

来源:互联网 发布:linux内核完全剖析 编辑:程序博客网 时间:2024/06/08 10:47

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>

配置一个控制器

@Controllerpublic 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
原创粉丝点击