如何在spring mvc中使用<mvc:view-controller />

Par*_*rag 4 spring-mvc

我正在使用Spring MVC来构建我的应用程序.我想在用户在浏览器中运行应用程序时显示默认的jsp.我不想<welcome-file>在web.xml中使用tag.

我想我可以用

 <mvc:view-controller />
Run Code Online (Sandbox Code Playgroud)

我创建了一个文件夹并添加了search.jsp,如下所示WEB-INF/views/search.jsp

以下是spring-servlet.xml示例

<?xml version="1.0" encoding="UTF-8"?>
  <beans ...>
      <context:component-scan
        base-package="org.lacare.frc.controller" />

      <!--      <bean class="org.lacare.frc.controller.ApplicationsController">
        <property name="formView" value="applications" />
        <property name="successView" value="CustomerSuccess" />
       </bean> -->
       <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
          <property name="prefix" value="/WEB-INF/view/"/>
         <property name="suffix" value=".jsp"/>
         </bean>



<mvc:view-controller path="/search" view-name="search.jsp"/>
Run Code Online (Sandbox Code Playgroud)

我的web.xml如下所示

<?xml version="1.0" encoding="UTF-8"?>
<web-app ... version="2.5">
    <display-name>Spring3MVC</display-name>
    <mime-mapping>
        <extension>png</extension>
        <mime-type>image/png</mime-type>
    </mime-mapping>

    <servlet>
        <servlet-name>spring</servlet-name>
        <servlet-class>
            org.springframework.web.servlet.DispatcherServlet
        </servlet-class>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>spring</servlet-name>
        <url-pattern>*.html</url-pattern>
    </servlet-mapping>

    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener- class>
    </listener>

    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
          /WEB-INF/applicationContext.xml
        </param-value>
    </context-param>
</web-app>
Run Code Online (Sandbox Code Playgroud)

我也尝试了以下内容

但是当我尝试运行应用程序时出现错误.search.jsp应显示为默认页面.错误403 - 禁止从RFC 2068超文本传输​​协议HTTP/1.1:10.4.4 403禁止服务器理解请求,但拒绝履行请求.

Hai*_*man 6

你应该用

<mvc:view-controller path="/search" view-name="search"/>
Run Code Online (Sandbox Code Playgroud)

视图名称是搜索,只有你InternalResourceViewResolver的配置,

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
     <property name="prefix" value="/WEB-INF/view/"/>
     <property name="suffix" value=".jsp"/>
 </bean>
Run Code Online (Sandbox Code Playgroud)

将前缀加上/WEB-INF/view/后缀,将其解析为jsp.jsp

在web.xml中将servlet映射到

<servlet-name>spring</servlet-name>
   <url-pattern>/</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)