我正在使用Spring MVC来构建我的应用程序。
我想在用户在浏览器中运行应用程序时显示默认的jsp。我不想在web.xml中使用<welcome-file>
标记。
我想我可以使用
<mvc:view-controller />
我创建了一个文件夹并添加了search.jsp,如下所示 WEB-INF /视图/ 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"/>
我的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>
我也尝试了以下内容
但是当我尝试运行应用程序时出现错误。 search.jsp应显示为默认页面。错误403 - 禁止从RFC 2068超文本传输协议HTTP / 1.1:10.4.4 403禁止服务器理解请求,但拒绝履行请求。
答案 0 :(得分:6)
你应该使用
<mvc:view-controller path="/search" view-name="search"/>
视图名称是搜索,只有您的InternalResourceViewResolver
具有配置
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="prefix" value="/WEB-INF/view/"/>
<property name="suffix" value=".jsp"/>
</bean>
将前缀为/WEB-INF/view/
,并以.jsp
在web.xml中将servlet映射更改为
<servlet-name>spring</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>