Browse Source

1st labs: hello world and appUser

wpfat23-6_m_sudra 3 years ago
parent
commit
9f33bfc3ae

+ 31 - 0
wpfat_exercises/pom.xml

@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+    <modelVersion>4.0.0</modelVersion>
+
+    <groupId>pl.sudra</groupId>
+    <artifactId>wpfat_exercises</artifactId>
+    <version>1.0-SNAPSHOT</version>
+
+    <properties>
+        <maven.compiler.source>17</maven.compiler.source>
+        <maven.compiler.target>17</maven.compiler.target>
+        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+    </properties>
+
+    <packaging>war</packaging>
+
+    <dependencies>
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-webmvc</artifactId>
+            <version>6.0.5</version>
+        </dependency>
+        <dependency>
+            <groupId>jakarta.servlet</groupId>
+            <artifactId>jakarta.servlet-api</artifactId>
+            <version>5.0.0</version>
+        </dependency>
+    </dependencies>
+</project>

+ 22 - 0
wpfat_exercises/src/main/java/pl/sudra/configuration/SpringConfiguration.java

@@ -0,0 +1,22 @@
+package pl.sudra.configuration;
+
+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.WebMvcConfigurer;
+import org.springframework.web.servlet.view.InternalResourceViewResolver;
+
+
+@Configuration
+@EnableWebMvc
+@ComponentScan("pl.sudra")
+public class SpringConfiguration implements WebMvcConfigurer {
+    @Bean
+    public InternalResourceViewResolver viewResolver() {
+        InternalResourceViewResolver viewResolver = new InternalResourceViewResolver();
+        viewResolver.setPrefix("/");
+        viewResolver.setSuffix(".jsp");
+        return viewResolver;
+    }
+}

+ 20 - 0
wpfat_exercises/src/main/java/pl/sudra/configuration/SpringInit.java

@@ -0,0 +1,20 @@
+package pl.sudra.configuration;
+
+import org.springframework.context.annotation.Configuration;
+import org.springframework.web.servlet.support.AbstractAnnotationConfigDispatcherServletInitializer;
+
+@Configuration
+public class SpringInit extends AbstractAnnotationConfigDispatcherServletInitializer {
+
+    protected Class<?>[] getRootConfigClasses() {
+        return new Class[]{SpringConfiguration.class};
+    }
+
+    protected Class<?>[] getServletConfigClasses() {
+        return new Class[0];
+    }
+
+    protected String[] getServletMappings() {
+        return new String[]{"/"};
+    }
+}

+ 26 - 0
wpfat_exercises/src/main/java/pl/sudra/controller/AppUserController.java

@@ -0,0 +1,26 @@
+package pl.sudra.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.servlet.ModelAndView;
+import pl.sudra.domain.AppUser;
+
+@Controller
+public class AppUserController {
+    @RequestMapping(value = "/appUsers")
+    public ModelAndView showAppUsers() {
+        return new ModelAndView("appUser", "appUser", new AppUser());
+    }
+
+    @RequestMapping(value = "/addAppUser", method = RequestMethod.POST)
+    public String addAppUser(@ModelAttribute("appUser") AppUser appUser) {
+        System.out.println("" +
+                "First Name: " + appUser.getFirstName() +
+                " Last Name: " + appUser.getLastName() +
+                " Tel.: " + appUser.getTelephone() +
+                " Email: " + appUser.getEmail());
+        return "redirect:appUsers";
+    }
+}

+ 23 - 0
wpfat_exercises/src/main/java/pl/sudra/controller/HelloController.java

@@ -0,0 +1,23 @@
+package pl.sudra.controller;
+
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+import java.text.DateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+@Controller
+public class HelloController {
+    @RequestMapping(value = "/")
+    public String helloWorld(Locale locale, Model model){
+        Date date = new Date();
+        DateFormat dateFormat = DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG, locale);
+        String formattedDate = dateFormat.format(date);
+
+        model.addAttribute("serverTime", formattedDate);
+
+        return "hello";
+    }
+}

+ 42 - 0
wpfat_exercises/src/main/java/pl/sudra/domain/AppUser.java

@@ -0,0 +1,42 @@
+package pl.sudra.domain;
+
+public class AppUser {
+
+    private String firstName;
+    private String lastName;
+    private String email;
+    private String telephone;
+
+    public String getFirstName() {
+        return firstName;
+    }
+
+    public void setFirstName(String firstName) {
+        this.firstName = firstName;
+    }
+
+    public String getLastName() {
+        return lastName;
+    }
+
+    public void setLastName(String lastName) {
+        this.lastName = lastName;
+    }
+
+    public String getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getTelephone() {
+        return telephone;
+    }
+
+    public void setTelephone(String telephone) {
+        this.telephone = telephone;
+    }
+
+}

+ 35 - 0
wpfat_exercises/src/main/webapp/appUser.jsp

@@ -0,0 +1,35 @@
+<%@ page contentType="text/html;charset-UTF-@" language="java" %>
+<%@ taglib uri="http://www.springframework.org/tags/form" prefix="form" %>
+<html>
+<head>
+    <title>App user page</title>
+</head>
+<body>
+<h1>App user info:</h1>
+<form:form method="post" action="addAppUser" modelAttribute="appUser">
+    <table>
+        <tr>
+            <td><form:label path="firstName">First Name</form:label></td>
+            <td><form:input path="firstName"/></td>
+        </tr>
+        <tr>
+            <td><form:label path="lastName">Last Name</form:label></td>
+            <td><form:input path="lastName"/></td>
+        </tr>
+        <tr>
+            <td><form:label path="email">Email</form:label></td>
+            <td><form:input path="email"/></td>
+        </tr>
+        <tr>
+            <td><form:label path="telephone">Telephone</form:label></td>
+            <td><form:input path="telephone"/></td>
+        </tr>
+        <tr>
+            <td colspan="2">
+                <input type="submit" value="Add AppUser"/>
+            </td>
+        </tr>
+    </table>
+</form:form>
+</body>
+</html>

+ 15 - 0
wpfat_exercises/src/main/webapp/hello.jsp

@@ -0,0 +1,15 @@
+<%@ page contentType="text/html;charset-UTF-@" language="java" %>
+<html>
+<head>
+    <title>Hello World!</title>
+</head>
+<body>
+<h3>Hello World!</h3>
+
+<a href="/appUsers">App Users page</a>
+
+<br/>
+${serverTime}
+
+</body>
+</html>