spring-boot使用xml配置中的多个视图解析器而不是正确重定向

我有一个使用spring xml的遗留应用程序,我正在迁移到spring-boot.

应用程序启动,我获得了身份验证页面,映射到applicationContext-login.xml中.登录成功后,它应该加载WEB-INF / client / home.jsp,但是,它尝试加载/WEB-INF/auth/home.jsp,我得到404.
在启动日志中,我看到它映射了所有路径.为什么在这些重定向上存在冲突,我该怎么做才能解决这个问题?由于多个包含视图解析器的@ImportResource会遇到问题吗?

从安全性http配置中提取:

    

它指向的控制器:

    @RequestMapping(value = "/defaultEntry",method = RequestMethod.GET)
    public String defaultEntry() {
        if (authentication.isAuthenticated()) {
              return "redirect:/client/home";
        } else {
            return "redirect:login";
        }
    }

该应用程序在xml文件中配置了多个视图解析器:

> classpath *:/ springContext / applicationContext-login.xml

> classpath *:/ springContext / applicationContext-client.xml“

还有一些其他人遵循相同的配置模式.

我正在加载Application.java中的资源

    @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
    //@EnableWebMvc
    @ComponentScan({"org.myCompany"})
    @ImportResource({"classpath*:/springContext/applicationContext-controllers.xml","classpath*:/springContext/applicationContext-rest.xml","classpath*:/springContext/applicationContext-login.xml","classpath*:/springContext/applicationContext-client.xml","classpath*:/springContext/applicationContext-admin.xml","classpath*:/springContext/applicationContext-logging.xml","classpath*:/springContext/applicationContext-web-common.xml"
    })
    public class Application extends SpringBootServletInitializer {

        public static void main(String[] args) throws UnknownHostException {
            SpringApplication app = new SpringApplication(Application.class);
            ApplicationContext ctx = app.run(args);
            Environment env = ctx.getEnvironment();

            logger.info(String.format("\n----------------------------------------------------------\n\t" +
                            "Application '%s' is running! Access URLs:\n\t" +
                            "Local: \t\thttp://localhost:%s\n\t" +
                            "External: \thttp://%s:%s\n----------------------------------------------------------",env.getProperty("spring.application.name"),env.getProperty("server.port"),InetAddress.getLocalHost().getHostAddress(),env.getProperty("server.port")));
        }

        @Bean
        public ServletRegistrationBean restDispatcher() {
            ServletRegistrationBean registration = new ServletRegistrationBean(new DispatcherServlet(),"/rest/*","/websocket/*");
            registration.setName("rest-dispatcher");
            registration.setLoadOnStartup(2);
            Map
最佳答案
您将从登录屏幕返回重定向:/ client / home,这将由您的loginViewResolver处理:

由于在视图解析器上没有指定顺序,因此不会调用clientViewResolver.您可以使用订单属性设置订单.

相关文章

这篇文章主要介绍了spring的事务传播属性REQUIRED_NESTED的原...
今天小编给大家分享的是一文解析spring中事务的传播机制,相...
这篇文章主要介绍了SpringCloudAlibaba和SpringCloud有什么区...
本篇文章和大家了解一下SpringCloud整合XXL-Job的几个步骤。...
本篇文章和大家了解一下Spring延迟初始化会遇到什么问题。有...
这篇文章主要介绍了怎么使用Spring提供的不同缓存注解实现缓...