Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring MVC:无法在html页面上重定向:404错误_Spring_Spring Mvc_Redirect_Controller_Http Status Code 404 - Fatal编程技术网

Spring MVC:无法在html页面上重定向:404错误

Spring MVC:无法在html页面上重定向:404错误,spring,spring-mvc,redirect,controller,http-status-code-404,Spring,Spring Mvc,Redirect,Controller,Http Status Code 404,我为重定向创建了一个简单的@Controller: @Controller @RequestMapping ( "/" ) public class HtmlTestingController { @GetMapping public String showPage() { return "redirect:access_denied"; } } 描述符是: <context-param> <param-name>contextConfigL

我为重定向创建了一个简单的@Controller:

@Controller
@RequestMapping ( "/" )
public class HtmlTestingController {

@GetMapping
public String showPage() {
    return "redirect:access_denied";
   }
 }
描述符是:

 <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>
        classpath:spring/spring-app.xml
        classpath:spring/spring-db.xml
    </param-value>
</context-param>

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

<servlet>
    <servlet-name>mvc-dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/spring-mvc.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>mvc-dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

上下文配置位置
类路径:spring/spring-app.xml
类路径:spring/spring-db.xml
org.springframework.web.context.ContextLoaderListener
mvc调度器
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
类路径:spring/spring-mvc.xml
1.
mvc调度器
/
spring-mvc.xml中的mvc配置为:

 <bean class="ru.spb.dreamwhite.web.json.JacksonObjectMapper" id="objectMapper" factory-method="getMapper"/>

<mvc:annotation-driven conversion-service="conversionService">

    <mvc:message-converters>
        <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
            <property name="objectMapper" ref="objectMapper"/>
        </bean>
        <bean class="org.springframework.http.converter.StringHttpMessageConverter">
        </bean>
    </mvc:message-converters>

</mvc:annotation-driven>

<bean class="org.springframework.format.support.FormattingConversionServiceFactoryBean" id="conversionService">
</bean>

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="WEB-INF/denied/"
      p:suffix=".html"
      />

<context:component-scan base-package="ru.spb.**.web"/>

<mvc:resources mapping="/resources/**" location="/resources/"/>

webapp结构见附件:

当我运行tomcat时,它会在url:上重定向我

但是出现了404错误。

我解决了这个问题:

 <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"
      p:prefix="/WEB-INF/denied/"
      p:suffix=".html"/>

 <mvc:resources mapping="/denied/**" location="/WEB-INF/denied/"/>

无关的建议:我认识的大多数人不再使用XML配置,除非它是一个遗留项目。请检查Spring的
JavaConfig
一次。它不应该是
重定向:/denied/access\u denied
?重定向:/denied/access\u denied没有帮助。结果是一样的:404
@GetMapping
public String showPage() {
    return "forward:/denied/access_denied.html";
}