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

用纯基于Java的配置,不使用web.xml开发spring mvc应用时,如何设置welcome-file?

金子轩
2023-03-14

我正在使用Spring MVC开发一个web应用程序,它完全基于Java,没有web。xml配置。我编写了下面的类来加载bean并设置url模式。如何设置欢迎文件?

public class MyAppWebAppIntializer implements WebApplicationInitializer {
    @Override
    public void onStartup(ServletContext servletContext) throws ServletException {
        AnnotationConfigWebApplicationContext appCtx = new AnnotationConfigWebApplicationContext();
        appCtx.register(ApplicationContextConfig.class);

        Dynamic dispatcher = servletContext.addServlet(
                "SpringDispatcher", new DispatcherServlet(appCtx));
        dispatcher.setLoadOnStartup(1);
        dispatcher.addMapping("/");
    }
}

共有1个答案

袁增
2023-03-14

在开发具有纯Java的配置的Spring MVC应用程序时,我们可以通过使我们的应用程序配置类扩展WebMvcConfigurerAdapter类来设置主页,并覆盖addViewControllers方法,我们可以在下面设置默认主页。

@Configuration
@EnableWebMvc
@ComponentScan(basePackages = { "com.myapp.controllers" })
public class ApplicationConfig extends WebMvcConfigurerAdapter {

  @Bean
  public InternalResourceViewResolver getViewResolver() {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
    viewResolver.setPrefix("/WEB-INF/view/");
    viewResolver.setSuffix(".jsp");
    return viewResolver;
  }

  @Override
  public void addViewControllers(ViewControllerRegistry registry) {
    registry.addViewController("/").setViewName("home");
  }

}

它返回可以作为主页的home.jsp视图。无需创建自定义控制器逻辑即可返回主页浏览量。

addViewControllers的JavaDoc方法说-

配置预先配置了响应状态代码和/或视图以呈现响应正文的简单自动控制器。这在不需要自定义控制器逻辑的情况下很有用——例如呈现主页、执行简单的站点URL重定向、返回带有超文本标记语言内容的404状态、没有内容的204状态等等。

第二种方法-对于静态超文本标记语言文件主页,我们可以在配置类中使用下面的代码-

@Override
    public void addViewControllers(ViewControllerRegistry registry) {
        registry.addViewController("/").setViewName("forward:/index.html");
    }

第三种方式 - 下面的请求映射“/”也将返回主页.jsp可以用作应用程序的主页。但建议采用上述过程。

@Controller
public class UserController {

    @RequestMapping(value = { "/" })
    public String homePage() {
        return "home";
    }

}
 类似资料:
  • 我有,我认为一个非常简单的Spring MVC设置。我的应用程序上下文.xml是这样的: 我目前的web.xml是: 我正试图将这个设置转换为纯基于Java的配置。我在网上搜索了一下,到目前为止,我找到了一些解释(一些什么)如何进行Java配置的东西,但是没有解释如何向环境(即web上下文)注册Java配置。 到目前为止,我在@Configuration方面是这样的: 如何将其注册到web容器?我

  • 问题内容: 我有一个我认为非常简单的Spring MVC设置。我的applicationContext.xml是这样的: 我的web.xml当前是这样的: 我正在尝试将此设置转换为基于Java的纯配置。我已经在网上搜索过,到目前为止,我已经提出了一些东西(这些东西可以解释)如何进行Java配置,但是没有解释如何在环境(即Web上下文)中注册该Java配置。 到目前为止,我对@Configurati

  • 问题内容: 不合理,无法通过注释而不是纯XML Bean来配置Spring Bean,现在我正面临后果。 我使用以下方式配置REST通道 现在,我只需要简单地将设置为仅将此具有非null值的字段输出到JSON。我尝试了以下方法: Bean被创建,但是转换器的另一个实例已创建并在通道中使用。所以我已经尝试过这种方法并在Stackoverflow问题中进行了描述,但是json序列化仍然使用其自己的配置

  • 最后,我尝试通过 但我以结束。所以现在我别无选择,所以我在这里征求任何想法。如何控制和配置框架使用的映射器?

  • 我正在尝试使用Enunciate为我的REST API生成静态文档,该API是使用Spring MVC 3.2用Java编写的。Enuncite网站声称,它通过使用以下特定插件来支持Spring: http://enunciate.codehaus.org/module_spring_app.html 在查看配置选项时,看起来我应该导入一个spring applicationContext.xml

  • 我正在使用Spring批处理设置一个作业服务器。我的JdbcCursorItemReader需要配置sql,该sql在每个作业运行的基础上进行更改。因为sql发生了变化,所以我希望阅读器具有@stepscope,这样我就不需要担心sql的状态性了。 所以我设置了这样一个类: 我在整个服务器上使用基于Java的配置。ItemReader的一个实例的bean如下所示: 启动服务器并运行Spring批处