Skip to content
Snippets Groups Projects
Commit 8d6cc23f authored by Hoai Viet Nguyen's avatar Hoai Viet Nguyen
Browse files

first test

parent 3dee2d82
No related branches found
No related tags found
1 merge request!3Frist ui elements with freemarker
package de.thk.gm.gdw.todolist.controllers package de.thk.gm.gdw.todolist.controllers
import org.springframework.stereotype.Controller import org.springframework.stereotype.Controller
import org.springframework.ui.Model
import org.springframework.web.bind.annotation.RequestMapping import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.ResponseBody import org.springframework.web.bind.annotation.ResponseBody
@Controller @Controller
class GreetingsController { class GreetingsController {
@RequestMapping("/greetings") @RequestMapping("/greetings")
@ResponseBody fun greetings(name: String, model: Model): String {
fun greetings(name: String): String { model.addAttribute("name", name)
return "Hallo $name" return "greetings"
} }
} }
\ No newline at end of file
package de.thk.gm.gdw.todolist.controllers
import de.thk.gm.gdw.todolist.services.UsersService
import org.springframework.http.MediaType
import org.springframework.stereotype.Controller
import org.springframework.ui.Model
import org.springframework.web.bind.annotation.*
import java.util.*
@Controller
@RequestMapping("/users/{userId}", produces = [MediaType.TEXT_HTML_VALUE], consumes = [MediaType.APPLICATION_FORM_URLENCODED_VALUE])
class TasksController (private val tasksRestController: TasksRestController, private var usersService: UsersService) {
@GetMapping("/tasks")
fun getTasks(@PathVariable("userId") userId: UUID, model: Model): String {
val tasks = tasksRestController.getTasks(userId)
val user = usersService.getUserById(userId)
model.addAttribute("tasks", tasks)
model.addAttribute("user", user)
return "tasks/showTasks"
}
@PostMapping("/tasks")
fun saveTask(@PathVariable("userId") userId: UUID, name: String): String {
tasksRestController.saveTask(name, userId)
return "redirect:/users/${userId}/tasks"
}
}
\ No newline at end of file
package de.thk.gm.gdw.todolist.controllers
import org.springframework.http.HttpStatus
import org.springframework.http.MediaType
import org.springframework.stereotype.Controller
import org.springframework.ui.Model
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PostMapping
import org.springframework.web.bind.annotation.RequestMapping
import org.springframework.web.bind.annotation.ResponseBody
import org.springframework.web.bind.annotation.ResponseStatus
@Controller
@RequestMapping(produces = [MediaType.TEXT_HTML_VALUE])
class UsersController (private val usersRestController: UsersRestController) {
@GetMapping("/")
fun showUsers(model: Model): String {
val users = usersRestController.getUsers()
model.addAttribute("users", users)
return "users/showUsers"
}
@PostMapping("/users")
@ResponseStatus(HttpStatus.CREATED)
fun saveUser(email: String): String {
usersRestController.saveUser(email)
return "redirect:/"
}
}
\ No newline at end of file
...@@ -9,12 +9,12 @@ import org.springframework.web.server.ResponseStatusException ...@@ -9,12 +9,12 @@ import org.springframework.web.server.ResponseStatusException
import java.util.* import java.util.*
@RestController @RestController
@RequestMapping(produces = [MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE]) @RequestMapping(produces = [MediaType.APPLICATION_JSON_VALUE, MediaType.APPLICATION_XML_VALUE], consumes = [MediaType.APPLICATION_JSON_VALUE])
class UsersRestController (private val usersService: UsersService) { class UsersRestController (private val usersService: UsersService) {
@PostMapping("/users") @PostMapping("/users")
@ResponseStatus(HttpStatus.CREATED) @ResponseStatus(HttpStatus.CREATED)
fun saveUser(email : String): User { fun saveUser(@RequestParam email : String): User {
var user = User() var user = User()
user.email = email user.email = email
usersService.saveUser(user) usersService.saveUser(user)
......
src/main/resources/static/images/round.png

1.07 KiB

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Test</title>
</head>
<body>
<h1>Hallo Welt</h1>
<form action="/users" method="post">
<input name="email" type="email">
<button>Create user</button>
</form>
<img src="/images/round.png" width="200" height="100">
</body>
</html>
\ No newline at end of file
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Greetings-Service</title>
</head>
<body>
<h2>Hallo ${name}</h2>
</body>
</html>
\ No newline at end of file
<#macro layout>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Todolist</title>
</head>
<body>
<header>
Todolist
</header>
<hr>
<main>
<#nested>
</main>
<hr>
<footer>
<a href="#">Imprint</a>
<a href="#">About us</a>
</footer>
</body>
</html>
</#macro>
\ No newline at end of file
<#import "../layout.ftlh" as base>
<@base.layout>
<h1>Tasks of ${user.email}</h1>
<ul>
<#list tasks as task>
<li>${task.name}</li>
</#list>
</ul>
<form action="/users/${user.id}/tasks" method="post">
<input name="name" type="text">
<button>Create task</button>
</form>
</@base.layout>
\ No newline at end of file
<#import "../layout.ftlh" as base>
<@base.layout>
<ul>
<#list users as user>
<li><a href="/users/${user.id}/tasks">${user.email}</a></li>
</#list>
</ul>
<form action="/users" method="post">
<input placeholder="max.mustermann@example.org" name="email">
<button>Create user</button>
</form>
</@base.layout>
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment