当前位置: 首页 > 面试题库 >

在开发具有纯Java配置且没有web.xml的spring mvc应用程序时,如何设置欢迎文件?

谈萧迟
2023-03-14
问题内容

我正在使用Spring
MVC开发基于纯Java且没有web.xml配置的Web应用程序。我确实对下面的类进行了编码,以加载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("/");
    }
}

问题答案:

开发基于纯Java的Configuration的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重定向,返回包含HTML内容的404状态,返回不包含内容的204状态等。

第二种方法 -对于静态HTML文件首页,我们可以在配置类中使用以下代码-

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

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

@Controller
public class UserController {

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

}


 类似资料:
  • 在缺少<code>web的情况下。xml,欢迎文件配置在哪里? 背景: 10.10欢迎文件 Web应用程序开发人员可以在Web应用程序部署描述符中定义称为欢迎文件的部分URI的有序列表。 JavaServlet规范版本3.0修订版2010年12月 我正在使用 Netbeans 8,但没有意识到 职责现在主要通过注释完成。但是,我似乎找不到与欢迎文件相关的注释。目前,加载,我想将其重新配置为。这可以

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

  • 我正在尝试在Spring MVC 4中从XML迁移到基于完整java类的配置。到目前为止,我所做的是创建一个简单的WebAppLaunalizer类和一个WebConfig类。 但是,我找不到一种方法来配置我的欢迎页面,下面是我以前的<code>Web.xml<code>的摘录: 任何帮助都将不胜感激。

  • 试图在Web应用程序中提供自定义404错误页面,据我所知,该应用程序使用Java配置(因此没有web.xml)。 我们有以下版本的相关库:Spring("5.1.2. RELEASE")、sping-Security("5.1.1. RELEASE")。 我在StackOverflow中检查了这里的不同方法。请不要建议web.xml、Thymeleaf或Spring Boot的结果。这不适用。 其

  • 问题内容: 我想知道是否有可能仅使用Java创建Android应用。没有XML,没有其他东西。 在Eclipse中,当我创建一个新的Android项目时,将自动生成Manifest xml文件和主布局xml文件。我可以删除这些文件并用Java文件替换吗? 问题答案: 对于布局,您有两个选择 在XML中声明UI元素。Android提供了一个简单的XML词汇表,它对应于View类和子类,例如小部件和布

  • 几乎所有的事情都很顺利,我可以打开和,我来到controller.java。但是当我打开时,我得到一个404错误。 我将Eclipse与一个“动态Web项目”一起使用,controller.java文件位于/src(默认包)下,Web.xml文件位于/webcontent/web-inf下。 我希望你能给我点提示。

  • 我对这个新的Facebook界面感到非常困惑,它的沙盒按钮在运行中丢失了。 在开发一个应用程序的中间,所以我在沙箱模式-你想让这个应用程序和它的所有现场功能可供大众使用吗?设置为否(我只是在开发) 我以应用程序管理员的身份登录到我的iOS设备facebook帐户,我已经正确设置了iOS和bundle ID,正确设置了FBID,但每次尝试从设备登录facebook时,我都会。。。 “应用程序未设置: