mvc:view-controller

This tag is a shorcut for defining a ParameterizableViewController that immediately forwards to a view when invoked.
这个标签是为了简化ParameterizableViewController映射到视图的配置

Use it in static cases when there is no Java Controller logic to execute before the view generates the response.
当响应视图是不需要执行控制器逻辑时使用

An example of view-controller that forwards to a home page is shown below:
一个跳转到主页的配置例子

<mvc:view-controller path="/" view-name="home"/>


两种用法
1、重定向
<mvc:view-controller path="/" view-name="redirect:/admin/index"/>
即如果当前路径是/ 则重定向到/admin/index
2、view name
<mvc:view-controller path="/" view-name=admin/index"/>
如果当前路径是/ 则交给相应的视图解析器直接解析为视图

<bean id="defaultViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver" p:order="2">
        <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
        <property name="contentType" value="text/html"/>
        <property name="prefix" value="/WEB-INF/jsp/"/>
        <property name="suffix" value=".jsp"/>
    </bean>
则得到的视图时 /WEB-INF/jsp/admin/index.jsp

 

jsp的默认会交给 如tomcat/conf/web.xml中的 jsp servlet处理
   <servlet>
        <servlet-name>jsp</servlet-name>
        <servlet-class>org.apache.jasper.servlet.JspServlet</servlet-class>
        <init-param>
            <param-name>fork</param-name>
            <param-value>false</param-value>
        </init-param>
        <init-param>
            <param-name>xpoweredBy</param-name>
            <param-value>false</param-value>
        </init-param>
        <load-on-startup>3</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>jsp</servlet-name>
        <url-pattern>*.jspx</url-pattern>
    </servlet-mapping>
除非你的spring也拦截*.jsp 但这样所有jsp都交给spring处理了

 

不想进controller,可以在spring-mvc.xml中配置静态访问路径

Xml代码 收藏代码

  1. <!-- 访问静态资源文件  -->
  2. <mvc:resources mapping="/images/**" location="/images/" cache-period="31556926"/>

像这样,jsp文件若放在静态路径/images下,可以直接访问,而不经过controller。

原文地址:https://www.cnblogs.com/suizhikuo/p/3629478.html