当前位置: 首页 > 知识库问答 >
问题:

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

陈季
2023-03-14

我为重定向创建了一个简单的@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>

MVC-配置在spring-mvc.xml是:

 <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错误。

共有1个答案

袁奇逸
2023-03-14

我解决了这个问题:

 <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";
}
 类似资料:
  • 问题内容: 是否可以设置基本的HTML页面以在加载时重定向到另一个页面? 问题答案: 尝试使用: 注意:将其放在头部。 此外,对于较旧的浏览器,如果添加了快速链接以防刷新不正确,请执行以下操作: 将显示为 重新导向 仍然可以通过单击几下到达目的地。

  • 问题内容: 我不知道执行此操作的功能,有人知道吗? 问题答案: 我发现这个例子很有帮助: https://github.com/visionmedia/express/blob/master/examples/error- pages/index.js 所以实际上是这部分:

  • 这是我在SpringMVC中使用Maven的第一个应用程序。下面是应用程序结构。 控制器代码: 当我点击index.jsp中的链接时,页面应该被遍历到helloworld.jsp

  • 我有下面的角函数。 功能: 我有一个侧栏导航控件。我已经创建了4页。 因此,当我单击这些导航项时,相应的页面将正确打开。 还有一些我还没有创建的页面。但根据下面的函数。 当我没有不存在的东西时,它必须返回到文件。 发生的事情是,我在控制台中没有收到错误,地址栏中的url反映了上次单击的有效页面。 有人让我知道我在哪里犯了错误,这种方法对于动态路由是否正确?

  • 我将spring boot security用作restful服务的ACL。安全适配器如下所示 userdetailservice的快照 我不确定是哪个部分导致了重定向。

  • 问题内容: 我试图将自定义中间件注入OWIN管道,该中间件包装来自MS 的可用中间件,以便在AngularJS中支持HTML 5模式。我一直在遵循此指南:http : //geekswithblogs.net/shaunxu/archive/2014/06/10/host-angularjs-html5mode-in- asp.net-vnext.aspx 从我可以收集到的信息来看,中间件将请求传