Как добавить страницы без добавления addViewController для каждой страницы? - PullRequest
0 голосов
/ 29 декабря 2018

Я изучал основы Spring и следил за некоторыми учебниками в интернете, а потом нашел:

    package control;
    import org.springframework.context.annotation.Configuration;
    import org.springframework.web.servlet.config.annotation.ViewControllerRegistry;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;

    @Configuration
    public class MVCController implements WebMvcConfigurer {
        public void addViewControllers(ViewControllerRegistry registry) {
              registry.addViewController("/index").setViewName("index");
              registry.addViewController("/").setViewName("index");
              registry.addViewController("/hello").setViewName("hello");
              registry.addViewController("/login").setViewName("login");
        }

    }

Итак, мои сомнения:

  • Как я могу разместить больше страниц, не добавляя новых строк, чтобы добавить View Controllers на каждую страницу?

  • Есть некоторый способ поместить некоторый универсальный контроллер встраницы, которые я не собираюсь обрабатывать?(например, некоторая статическая страница)

Я использую пружину 5 и Java JRE 1.8.

Спасибо!

1 Ответ

0 голосов
/ 29 декабря 2018

Если вы установите, например, ViewResolver bean-компонент в вашем config class, общий круг будет выглядеть примерно так:

@Bean
public ViewResolver viewResolver() {
    InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();

    viewResolver.setPrefix("/WEB-INF/view/");
    viewResolver.setSuffix(".jsp");

    return viewResolver;
}

После этого вы можете создавать классы контроллеров с помощью @Controllerаннотация, в которой вы будете назначать @RequestMapping аннотацию, которая будет прослушивать назначенное назначение.

Например,

@Controller
public class yourCustomController {

//this will be your home page
@RequestMapping(value ="/")
public String showHomePage(){
//the return statement will look in the path defined in the view resolver and add the .jsp suffix ( so it will display file "/web-inf/view/my-home-page.jsp" )
  return "my-home-page";
}
}

Вы также можете назначить контроллеры для определенных путей, например, @Controller(value="/blog")все контроллеры @RequestMappings будут сопоставлены с root/blog/**.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...