404在角度2刷新/ f5

时间:2018-06-19 13:35:55

标签: java spring angular

首先,我已搜索并搜索了所有可能的解决方案,但似乎没有一个可行。 在与Spring集成angular 2时,页面重新加载时得到404。

我不希望切换到HashStrategy。

这是我的Initializer.java:

   public void onStartup(ServletContext servletContext) throws ServletException {

    System.out.println("IN Initializer : onStartup");
    AnnotationConfigWebApplicationContext context = new AnnotationConfigWebApplicationContext();
    context.register(WebAppConfig.class);
    servletContext.addListener(new ContextLoaderListener(context));

    DispatcherServlet ds = new DispatcherServlet(context);
    ds.setThrowExceptionIfNoHandlerFound(true);

    Dynamic dispatcher = servletContext.addServlet("DispatcherServlet", ds);
    dispatcher.setLoadOnStartup(1);
    dispatcher.addMapping("/");

}

这是我的AppConfig:

 @Bean
 public ViewResolver setupViewResolver() {

    System.out.println(" --- WebAppConfig : ViewResolver ---");
    UrlBasedViewResolver  resolver = new UrlBasedViewResolver();
    resolver.setPrefix("/");
    resolver.setSuffix(".html");
    resolver.setViewClass(JstlView.class);
    return resolver;
}

 @Override
    public void addViewControllers(ViewControllerRegistry registry) {

        System.out.println(" --- WebAppConfig : addViewControllers ---");
        registry.addViewController("/").setViewName("index");
    }

@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {

    System.out.println(" --- WebAppConfig : addResourceHandlers ---");
    registry.addResourceHandler("/**").addResourceLocations("/");
}

我尝试通过以下方式用java处理它:(当我将Java与angularjs集成在一起并从URL中删除#!时,此方法有效)

        @ControllerAdvice
        @EnableWebMvc
        public class StaticExceptionHandler {

                 @ExceptionHandler(NoHandlerFoundException.class)
                 public String handle404(Exception ex) {
                      System.out.println("inside NoHandlerFoundException");
                      return "index";
                    }
          }

但是似乎没有任何效果。.请让我知道是否需要发布更多的代码段。

谢谢!

0 个答案:

没有答案