【问题标题】:Spring MVC: cant redirect on html-page: 404-errorSpring MVC:无法在 html 页面上重定向:404 错误
【发布时间】:2020-06-13 21:54:26
【问题描述】:

我为重定向创建了一个简单的@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-mvc.xml中的mvc-configuration是:

 <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:http://localhost:8080/test/access_denied

但出现 404 错误。

【问题讨论】:

  • 不相关的建议:我认识的大多数人不再使用 XML 配置,除非它是一个遗留项目。请查看 Spring 的 JavaConfig 一次。
  • 不应该是redirect:/denied/access_denied吗?
  • redirect:/denied/access_denied 没有帮助。结果是一样的:404

标签: spring spring-mvc redirect controller http-status-code-404


【解决方案1】:

我解决了这个问题:

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

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

和控制器:

@GetMapping
public String showPage() {
    return "forward:/denied/access_denied.html";
}

【讨论】:

    猜你喜欢
    • 2014-05-15
    • 1970-01-01
    • 1970-01-01
    • 2013-09-17
    • 2023-03-27
    • 2018-10-14
    • 2021-09-06
    • 1970-01-01
    • 2018-03-29
    相关资源
    最近更新 更多