Commit 5885d25e by Patryk Czarnik

Spis treści

parent 9258a181
...@@ -9,8 +9,12 @@ import java.time.LocalDateTime; ...@@ -9,8 +9,12 @@ import java.time.LocalDateTime;
@Controller @Controller
public class RootController { public class RootController {
@GetMapping("/")
public String index() {
return "index.jsp";
}
@GetMapping({"/", "/hello"}) @GetMapping(path="/hello", produces="text/plain")
@ResponseBody @ResponseBody
public String hello() { public String hello() {
return "Hello world"; return "Hello world";
......
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Aplikacja Sklep Spring</title>
<link rel="stylesheet" type="text/css" href="/styl.css">
</head>
<body>
<h1>Spis treści</h1>
<h2>Podstawy</h2>
<ul>
<li><a href="/">Spis treści</a></li>
<li><a href="/hello">Hello world</a></li>
<li><a href="/czas">Która godzina</a></li>
</ul>
<h2>Logowanie</h2>
<ul>
<li><a href="/login">zaloguj się</a>
<li><a href="/logout">wyloguj się</a>
<li><a href="/whoami">sprawdź kim jesteś</a>
</ul>
<h2>Katalog produktów</h2>
<ul>
<li><a href="/products">products</a> - wszystkie produkty</li>
<li><a href="/products/1">products/1</a> - jeden produkt</li>
<li><a href="/products/9">products/9</a> - nieistniejący produkt</li>
<li><a href="/products/szukaj">wyszukiwarka</a></li>
<li><a href="/products/szukaj?name=pralka">wyszukiwarka/pralka</a></li>
<li><a href="/products/new">nowy produkt</a></li>
<li><a href="/products/1/edit">edycja produktu</a></li>
</ul>
<h2>Edycja klienta</h2>
<ul>
<li><a href="/customers">lista klientów</a>
<li><a href="/customers/new">nowy klient</a>
<li><a href="/customers/ala@example.com/edit">edycja klienta</a>
</ul>
<h2>Alternatywne dostępy do bazy danych</h2>
<ul>
<li><a href="/alt0/products">Dostęp JDBC</a> (klasyczne getConnection)</li>
<li><a href="/alt1/products">Dostęp JDBC</a> (wstrzykiwanie DataSource)
<ul>
<li><a href="/alt1/products/1">jeden produkt</a></li>
<li><a href="/alt1/products/szukaj?name=pralka">wg nazwy</a></li>
</ul>
</li>
<li><a href="/alt2/products">EntityManager z poziomu Controllera</a>
<ul>
<li><a href="/alt2/products/1">jeden produkt</a></li>
<li><a href="/alt2/products/szukaj?name=pralka">wg nazwy</a></li>
</ul>
</li>
<li><a href="/alt3/products">wersja z szablonami</a>
<ul>
<li><a href="/alt3/products/1">jeden produkt</a></li>
<li><a href="/alt3/products/szukaj?name=pralka">wg nazwy</a></li>
</ul>
</li>
<li><a href="/alt4/products">klasa Repository</a> - własna implementacja oparta o EntityManager
<ul>
<li><a href="/alt4/products/1">jeden produkt</a></li>
<li><a href="/alt4/products/szukaj?name=pralka">wg nazwy</a></li>
</ul>
</li>
<li><a href="/alt5/products">klasa Repository</a> - wydzielenie interfejsu
<ul>
<li><a href="/alt5/products/1">jeden produkt</a></li>
<li><a href="/alt5/products/szukaj?name=pralka">wg nazwy</a></li>
</ul>
</li>
<li><a href="/alt6/products">JpaRepository</a> bez rozszerzeń
<ul>
<li><a href="/alt6/products/1">jeden produkt</a></li>
</ul>
</li>
<li><a href="/alt7/products">JpaRepository</a> z dodatkowymi metodami
<ul>
<li><a href="/alt7/products/1">jeden produkt</a></li>
<li><a href="/alt7/products/szukaj">wyszukiwarka</a> (formularz)</li>
</ul>
</li>
</ul>
</body>
</html>
@charset "UTF-8";
body {
background-color: #EEFFDD;
font-family: 'Arial', sans-serif;
}
h1, h4 {
text-align: center;
}
h2, h3, h4 {
margin-top: 0;
}
.product {
border: solid 2px blue;
margin: 1em 400px 1em 50px;
padding: 1em;
background-color: #DDFFDD;
width: 800px;
clear: right;
}
.basket {
position: fixed;
right: 0;
top: 0;
width: 300px;
height: 400px;
background-color: white;
border: outset 3px green;
padding: 1em;
font-size: smaller;
}
.product-name, .product-price {
font-weight: bold;
font-size: larger;
}
.product-description {
font-style: italic;
}
.error {
color: red;
border: 4px solid red;
margin: 1em 400px 1em 50px;
padding: 1em;
background-color: white;
font-weight: bold;
}
.info {
color: green;
border: 4px solid green;
margin: 1em 400px 1em 50px;
padding: 1em;
background-color: white;
font-weight: bold;
min-width: 500px;
}
#wyszukiwarka {
background-color: #AAEEFF;
width: 800px;
border: 2px black solid;
margin: 1em 400px 1em 50px;
padding: 1em;
}
#product-form {
margin: 1em auto;
padding: 1em;
border: 4px solid blue;
background-color: #DDFFFF;
min-width: 500px;
max-width: 1000px;
}
#product-form textarea {
min-width: 360px;
}
.form-error {
color: red;
font-size: smaller;
}
div.action {
font-size: smaller;
font-family: 'Arial', sans-serif;
font-weight: bold;
background-color: #DDDDDD;
border: 2px #444466 outset;
padding: 6px;
margin: 4px auto 4px 4px;
max-width: 200px;
}
.action:hover {
background-color: #EEEEEE;
border: 2px #4455CC outset;
}
.action:active {
background-color: #EEEEEE;
border: 2px #CC4455 inset;
}
.action a {
display: inline-block;
color: inherit;
text-decoration: none;
width: 100%;
}
.action a:hover {
color: #0000CC;
}
.photo {
display: block;
float: right;
max-width: 300px;
max-height: 200px;
margin: 5px;
}
.data-table {
border-collapse: collapse;
border: 2px solid black;
background-color: #AAFFEE;
margin: 1em 100px;
}
.data-table th, .data-table td {
font-size: 0.95em;
padding: 2px 4px;
text-align: center;
border: 1px solid black;
}
.data-table th {
font-weight: bold;
background-color: #EE88DD;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment