加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 01:35:55 所属栏目:大数据 来源:网络整理
导读:我有一个使用spring xml的遗留应用程序,我正在迁移到spring-boot. 应用程序启动,我获得了身份验证页面,映射到applicationContext-login.xml中.登录成功后,它应该加载WEB-INF / client / home.jsp,但是,它尝试加载/WEB-INF/auth/home.jsp,我得到404. 在启动日

我有一个使用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----------------------------------------------------------nt" +
                            "Application '%s' is running! Access URLs:nt" +
                            "Local: tthttp://localhost:%snt" +
                            "External: thttp://%s:%sn----------------------------------------------------------",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.您可以使用订单属性设置订单.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读