From dbe4be7dd5b5c8b7b4dc4f599a8e65cac6c0b82b Mon Sep 17 00:00:00 2001 From: Sanders Date: Tue, 26 Dec 2023 17:18:58 +0300 Subject: [PATCH] 1 --- .gitignore | 38 ++++++ .idea/.gitignore | 8 ++ .idea/encodings.xml | 7 + .idea/misc.xml | 14 ++ .idea/uiDesigner.xml | 124 ++++++++++++++++++ .idea/vcs.xml | 6 + pom.xml | 65 +++++++++ .../example/config/MySpringServletInit.java | 21 +++ .../java/org/example/config/SpringConfig.java | 50 +++++++ .../example/controllers/FirstController.java | 23 ++++ .../webapp/WEB-INF/views/first/goodbye.html | 15 +++ .../webapp/WEB-INF/views/first/hello.html | 17 +++ 12 files changed, 388 insertions(+) create mode 100644 .gitignore create mode 100644 .idea/.gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/uiDesigner.xml create mode 100644 .idea/vcs.xml create mode 100644 pom.xml create mode 100644 src/main/java/org/example/config/MySpringServletInit.java create mode 100644 src/main/java/org/example/config/SpringConfig.java create mode 100644 src/main/java/org/example/controllers/FirstController.java create mode 100644 src/main/webapp/WEB-INF/views/first/goodbye.html create mode 100644 src/main/webapp/WEB-INF/views/first/hello.html diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +target/ +!.mvn/wrapper/maven-wrapper.jar +!**/src/main/**/target/ +!**/src/test/**/target/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ +build/ +!**/src/main/**/build/ +!**/src/test/**/build/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..aa00ffa --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..0a13117 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,14 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..2b63946 --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..94a25f7 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..0d233d4 --- /dev/null +++ b/pom.xml @@ -0,0 +1,65 @@ + + 4.0.0 + org.example + MyMVC + war + + 20 + 20 + + 1.0-SNAPSHOT + MyMVC Maven Webapp + http://maven.apache.org + + + junit + junit + 3.8.1 + test + + + + + org.springframework + spring-core + 5.3.31 + + + + + org.springframework + spring-context + 5.3.31 + + + + org.springframework + spring-web + 5.3.31 + + + + org.springframework + spring-webmvc + 5.3.31 + + + + org.thymeleaf + thymeleaf-spring5 + 3.1.2.RELEASE + + + + javax.servlet + javax.servlet-api + 4.0.1 + provided + + + + + MyMVC + + diff --git a/src/main/java/org/example/config/MySpringServletInit.java b/src/main/java/org/example/config/MySpringServletInit.java new file mode 100644 index 0000000..a131007 --- /dev/null +++ b/src/main/java/org/example/config/MySpringServletInit.java @@ -0,0 +1,21 @@ +package org.example.config; + +import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer; + +public class MySpringServletInit extends AbstractAnnotationConfigDispatcherServletInitializer { + + @Override + protected Class[] getRootConfigClasses() { + return null; + } + + @Override + protected Class[] getServletConfigClasses() { + return new Class[] {SpringConfig.class}; + } + + @Override + protected String[] getServletMappings() { + return new String[] {"/"}; + } +} diff --git a/src/main/java/org/example/config/SpringConfig.java b/src/main/java/org/example/config/SpringConfig.java new file mode 100644 index 0000000..1f8bb03 --- /dev/null +++ b/src/main/java/org/example/config/SpringConfig.java @@ -0,0 +1,50 @@ +package org.example.config; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.ApplicationContext; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.ComponentScan; +import org.springframework.context.annotation.Configuration; +import org.springframework.web.servlet.config.annotation.EnableWebMvc; +import org.springframework.web.servlet.config.annotation.ViewResolverRegistry; +import org.springframework.web.servlet.config.annotation.WebMvcConfigurer; +import org.thymeleaf.spring5.SpringTemplateEngine; +import org.thymeleaf.spring5.templateresolver.SpringResourceTemplateResolver; +import org.thymeleaf.spring5.view.ThymeleafViewResolver; + +@Configuration +@ComponentScan("org.example") +@EnableWebMvc +public class SpringConfig implements WebMvcConfigurer { + + private final ApplicationContext applicationContext; + + @Autowired + public SpringConfig(ApplicationContext applicationContext) { + this.applicationContext = applicationContext; + } + + @Bean + public SpringResourceTemplateResolver templateResolver() { + SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver(); + templateResolver.setApplicationContext(applicationContext); + templateResolver.setPrefix("/WEB-INF/views/"); + templateResolver.setSuffix(".html"); + return templateResolver; + } + + @Bean + public SpringTemplateEngine templateEngine() { + SpringTemplateEngine templateEngine = new SpringTemplateEngine(); + templateEngine.setTemplateResolver(templateResolver()); + templateEngine.setEnableSpringELCompiler(true); + return templateEngine; + } + + @Override + public void configureViewResolvers(ViewResolverRegistry registry) { + ThymeleafViewResolver resolver = new ThymeleafViewResolver(); + resolver.setTemplateEngine(templateEngine()); + registry.viewResolver(resolver); + } +} \ No newline at end of file diff --git a/src/main/java/org/example/controllers/FirstController.java b/src/main/java/org/example/controllers/FirstController.java new file mode 100644 index 0000000..0c288be --- /dev/null +++ b/src/main/java/org/example/controllers/FirstController.java @@ -0,0 +1,23 @@ +package org.example.controllers; + +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.RequestParam; + +import javax.servlet.http.HttpServletRequest; + +@Controller +public class FirstController { + @GetMapping("/Hello") + public String helloPage(@RequestParam(value = "name") String name, Model model){ + + model.addAttribute("message",name); + System.out.println(name); + return "first/hello"; + } + @GetMapping("/goodbye") + public String goobyePage(){ + return "first/goodbye"; + } +} diff --git a/src/main/webapp/WEB-INF/views/first/goodbye.html b/src/main/webapp/WEB-INF/views/first/goodbye.html new file mode 100644 index 0000000..089a55b --- /dev/null +++ b/src/main/webapp/WEB-INF/views/first/goodbye.html @@ -0,0 +1,15 @@ + + + + + + My app + + + + +

Hello world!

+ + + + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/views/first/hello.html b/src/main/webapp/WEB-INF/views/first/hello.html new file mode 100644 index 0000000..46b5658 --- /dev/null +++ b/src/main/webapp/WEB-INF/views/first/hello.html @@ -0,0 +1,17 @@ + + + + + + My app + + + + +

Hello world!

+ +

+ + + + \ No newline at end of file