<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
<channel>
<title>Forum Pasja Informatyki - Najnowsze z tagiem thymeleaf</title>
<link>https://forum.pasja-informatyki.pl/tag/thymeleaf</link>
<description>Powered by Question2Answer</description>
<item>
<title>Operatory * i $ w Thymeleaf</title>
<link>https://forum.pasja-informatyki.pl/591672/operatory-i-%24-w-thymeleaf</link>
<description>

&lt;p&gt;Hej, moje pytanie brzmi, jak odróżnić do czego jest operator &quot;&lt;strong&gt;$&lt;/strong&gt;{}&quot; a do czego &quot;&lt;strong&gt;&lt;span style=&quot;font-size:12px&quot;&gt;*&lt;/span&gt;&lt;/strong&gt;{}&quot; w Thymeleaf?&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/591672/operatory-i-%24-w-thymeleaf</guid>
<pubDate>Sat, 24 Feb 2024 12:17:34 +0000</pubDate>
</item>
<item>
<title>Thymeleaf - value jako wartość wygenerowana z javascriptu</title>
<link>https://forum.pasja-informatyki.pl/572794/thymeleaf-value-jako-wartosc-wygenerowana-z-javascriptu</link>
<description>

&lt;p&gt;Cześć, w moim mini projekcie mam formularz do wypełnienia.&lt;/p&gt;



&lt;p&gt;Jedno z pól to zakres sum od do. Znalazłem coś takiego i chciałbym tego użyć:&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://codepen.io/jackiejohnston/pen/NNrpjQ&quot;&gt;codepen.io&lt;/a&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Chciałbym pobrać wartość min i max i wrzucić to jako pola w formularzu. Oczywiście tu mam problem, nie wiem jak to zrobić (praktycznie nie pracuje z html, css i js :/ ). Myślałem, że ogarnę to wstawiając th:value w ukrytych inputach ale niestety nie chce to działa.&lt;/p&gt;



&lt;p&gt;Jak powinienem to zrobić poprawnie? Jakieś wskazówki?&lt;/p&gt;</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/572794/thymeleaf-value-jako-wartosc-wygenerowana-z-javascriptu</guid>
<pubDate>Wed, 05 Oct 2022 18:35:27 +0000</pubDate>
</item>
<item>
<title>Nie mogę dodać obiektu do bazy danych</title>
<link>https://forum.pasja-informatyki.pl/571458/nie-moge-dodac-obiektu-do-bazy-danych</link>
<description>

&lt;p&gt;Cześć,&lt;/p&gt;



&lt;p&gt;Potrzebuję wasze pomocy. Piszę właśnie aplikacje internetowej biblioteki za pomocą Spring Boot + thymeleaf. W związku z tym, że pomiędzy ksiażkami a autorami w bazie danych zachodzi relacja @Manytomany nie potrafię poradzić sobie z dodanie nowej ksiażki za pomocą formularza html. Czy ktoś mógłby mi podpowiedzieć jak to należy zrobić. Na dole wysyłam mój kod.&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
import javax.persistence.*;
import java.util.List;
import java.util.Objects;

@Entity
@Table(name = &quot;book&quot;)
public class Book {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = &quot;id&quot;)
    private Integer id;
    @Column(name = &quot;title&quot;)
    private String title;
    @Column(name = &quot;year&quot;)
    private Integer year;

    @ManyToMany(cascade = {CascadeType.DETACH, CascadeType.MERGE,
            CascadeType.PERSIST, CascadeType.REFRESH})
    @JoinTable(
            name = &quot;books_authors&quot;,
            joinColumns = @JoinColumn(name = &quot;book_id&quot;, unique = false),
            inverseJoinColumns = @JoinColumn(name = &quot;author_id&quot;, unique = false)
    )
    private List&amp;lt;Author&amp;gt; authors;

    //konstruktory, gettery/settery toString()

}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
import javax.persistence.*;
import java.util.List;

@Entity
@Table(name = &quot;author&quot;)
public class Author {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name = &quot;id&quot;)
    private Integer id;
    @Column(name = &quot;name&quot;)
    private String name;


    @ManyToMany(cascade = {CascadeType.DETACH, CascadeType.MERGE,
            CascadeType.PERSIST, CascadeType.REFRESH})
    @JoinTable(
            name = &quot;books_authors&quot;,
            joinColumns = @JoinColumn(name = &quot;author_id&quot;, unique = false),
            inverseJoinColumns = @JoinColumn(name = &quot;book_id&quot;, unique = false)
    )
    private List&amp;lt;Book&amp;gt; books;

   //konstruktory gettery/settery toString()

}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
import com.example.myTestProject.entity.Author;
import org.springframework.data.jpa.repository.JpaRepository;

public interface AuthorRepository extends JpaRepository&amp;lt;Author, Integer&amp;gt; {
}



import com.example.myTestProject.entity.Book;
import org.springframework.data.jpa.repository.JpaRepository;

public interface BookRepository extends JpaRepository&amp;lt;Book, Integer&amp;gt; {
}
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
mport com.example.myTestProject.entity.Book;

import java.util.List;
import java.util.Optional;

public interface BookService {

    public List&amp;lt;Book&amp;gt; findAll();

    public Optional&amp;lt;Book&amp;gt; findById(int theId);

    public void save(Book theBook);

    public void deleteById(int theId);
}




import com.example.myTestProject.dao.BookRepository;
import com.example.myTestProject.entity.Book;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@Service
public class BookServiceImpl implements BookService {

    private BookRepository bookRepository;

    @Autowired
    public BookServiceImpl(BookRepository theBookRepository){
        bookRepository = theBookRepository;
    }

    @Override
    public List&amp;lt;Book&amp;gt; findAll() {
        return bookRepository.findAll();
    }

    @Override
    public Optional&amp;lt;Book&amp;gt; findById(int theId) {

        Optional&amp;lt;Book&amp;gt; book = bookRepository.findById(theId);

        if (book.isEmpty()){
            throw new RuntimeException(&quot;Didn't find book id - &quot; + theId);
        }
        else {
            return book;
        }
    }

    @Override
    public void save(Book theBook) {
        bookRepository.save(theBook);
    }

    @Override
    public void deleteById(int theId) {
        bookRepository.deleteById(theId);
    }
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
import com.example.myTestProject.entity.Book;
import com.example.myTestProject.service.BookService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;

@Controller
@RequestMapping(&quot;books&quot;)
public class BookController {

    private BookService bookService;

    @Autowired
    public BookController(BookService theBookService){
        bookService = theBookService;
    }

    @GetMapping(&quot;/list&quot;)
    public String listBooks(Model theModel){
        List&amp;lt;Book&amp;gt; theBooks = bookService.findAll();

        //add to the spring model
        theModel.addAttribute(&quot;books&quot;, theBooks);

        return&quot;books/list-books&quot;;
    }

    @GetMapping(&quot;/showFormForAdd&quot;)
    public String showFormForAdd(Model theModel) {

        // create model attribute to bind form data
        Book theBook = new Book();

        theModel.addAttribute(&quot;book&quot;, theBook);

        return &quot;books/book-form&quot;;
    }

    @PostMapping(&quot;/save&quot;)
    public String saveBook(@ModelAttribute(&quot;book&quot;) Book theBook){

        //save the book
        bookService.save(theBook);

        //use a ridirect to prevent duplicate submissions
        return &quot;redirect:/book/list&quot;;
    }
}&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;!DOCTYPE HTML&amp;gt;
&amp;lt;html lang=&quot;en&quot; xmlns:th=&quot;http://www.thymeleaf.org&quot;&amp;gt;

&amp;lt;head&amp;gt;
  &amp;lt;!-- Required meta tags --&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&amp;gt;

  &amp;lt;!-- Bootstrap CSS --&amp;gt;
  &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css&quot; integrity=&quot;sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS&quot; crossorigin=&quot;anonymous&quot;&amp;gt;

  &amp;lt;title&amp;gt;Books&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;

&amp;lt;body&amp;gt;

&amp;lt;div class=&quot;container&quot;&amp;gt;

  &amp;lt;h3&amp;gt;Books&amp;lt;/h3&amp;gt;
  &amp;lt;hr&amp;gt;

  &amp;lt;!-- Add a button --&amp;gt;
  &amp;lt;a th:href=&quot;@{/books/showFormForAdd}&quot;
     class=&quot;btn btn-primary btn-sm mb-3&quot;&amp;gt;
    Add Book
  &amp;lt;/a&amp;gt;

  &amp;lt;table class=&quot;table table-bordered table-striped&quot;&amp;gt;
    &amp;lt;thead class=&quot;thead-dark&quot;&amp;gt;
    &amp;lt;tr&amp;gt;
      &amp;lt;th&amp;gt;Title&amp;lt;/th&amp;gt;
      &amp;lt;th&amp;gt;Year&amp;lt;/th&amp;gt;
      &amp;lt;th&amp;gt;Author&amp;lt;/th&amp;gt;
    &amp;lt;/tr&amp;gt;
    &amp;lt;/thead&amp;gt;

    &amp;lt;tbody&amp;gt;
    &amp;lt;tr th:each=&quot;tempBook : ${books}&quot;&amp;gt;

      &amp;lt;td th:text=&quot;${tempBook.title}&quot; /&amp;gt;
      &amp;lt;td th:text=&quot;${tempBook.year}&quot; /&amp;gt;
      &amp;lt;td th:text=&quot;${tempBook.authors}&quot; /&amp;gt;

    &amp;lt;/tr&amp;gt;
    &amp;lt;/tbody&amp;gt;
  &amp;lt;/table&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;!DOCTYPE HTML&amp;gt;
&amp;lt;html lang=&quot;en&quot; xmlns:th=&quot;http://www.thymeleaf.org&quot;&amp;gt;

&amp;lt;head&amp;gt;
  &amp;lt;!-- Required meta tags --&amp;gt;
  &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
  &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1, shrink-to-fit=no&quot;&amp;gt;

  &amp;lt;!-- Bootstrap CSS --&amp;gt;
  &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css&quot; integrity=&quot;sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS&quot; crossorigin=&quot;anonymous&quot;&amp;gt;

  &amp;lt;title&amp;gt;Save Book&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
  &amp;lt;div class=&quot;container&quot;&amp;gt;

    &amp;lt;h3&amp;gt;Book Directory&amp;lt;/h3&amp;gt;
    &amp;lt;hr&amp;gt;

    &amp;lt;p class=&quot;h4 mb-4&quot;&amp;gt;Save Book&amp;lt;/p&amp;gt;

    &amp;lt;form action=&quot;#&quot; th:action=&quot;@{/books/save}&quot;
                      th:object=&quot;${book}&quot; method=&quot;post&quot;&amp;gt;

      &amp;lt;input type=&quot;text&quot; th:field=&quot;*{title}&quot;
              class=&quot;form-control mb-4 col-4&quot; placeholder=&quot;Title&quot;&amp;gt;

      &amp;lt;input type=&quot;text&quot; th:field=&quot;*{year}&quot;
             class=&quot;form-control mb-4 col-4&quot; placeholder=&quot;Year&quot;&amp;gt;

      &amp;lt;input type=&quot;text&quot; th:field=&quot;*{authors}&quot;
             class=&quot;form-control mb-4 col-4&quot; placeholder=&quot;author&quot;&amp;gt;

      &amp;lt;button type=&quot;submit&quot; class=&quot;btn btn-info col-2&quot;&amp;gt;Save&amp;lt;/button&amp;gt;

    &amp;lt;/form&amp;gt;

    &amp;lt;hr&amp;gt;
    &amp;lt;a th:href=&quot;@{/books/list}&quot;&amp;gt;Back to Employees List&amp;lt;/a&amp;gt;

  &amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Z góry dziękuję za wszystkie podpowiedzi :)&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/571458/nie-moge-dodac-obiektu-do-bazy-danych</guid>
<pubDate>Fri, 02 Sep 2022 13:40:56 +0000</pubDate>
</item>
<item>
<title>Spring Boot - aplikacja dla wielu stron internetowych</title>
<link>https://forum.pasja-informatyki.pl/557578/spring-boot-aplikacja-dla-wielu-stron-internetowych</link>
<description>

&lt;p&gt;Witam,
&lt;br&gt;
pracuję obecnie nad systemem aktualności dla stron internetowych. Do tego celu używam Spring Boot + Thymeleaf + biblioteka javowa z edytorem tekstu.&amp;nbsp;
&lt;br&gt;
Stworzyłem admin panel, opcje dodawania i usuwania aktualności, wszystko się wyświetla na stronie głównej w odpowiednim miejscu.
&lt;br&gt;
I teraz przychodzi moje pytanie. Chciałbym, aby ta aplikacja była łatwa do zainstalowania przez każdego, kto chce jej użyć na swojej stronie internetowej. Niestety, z moją dotychczasową wiedzą, znaczy to tyle, że każdą stronę musiałbym wrzucić do folderu&amp;nbsp;&lt;strong&gt;templates&lt;/strong&gt;, aby wszystko działało. Jeżeli zatem będzie 20 osób, które chciałyby mieć aktualności na swojej stronie - 20 razy muszę przerzucić pliki strony do projektu, ewentualnie pozmieniać coś w konfiguracji, zbudować aplikację i wysłać użytkownikowi.
&lt;br&gt;
Istnieje jakiś lepszy sposób, aby nie trzeba było podmieniać za każdym razem tych plików? Zrobić z tego coś w rodzaju &quot;&lt;em&gt;standalone application&lt;/em&gt;&quot;.
&lt;br&gt;
Myślałem o czymś w stylu skryptu, który po prostu by kod aktualności (razem z thymeleafowymi zmiennymi) generował automatycznie pod np. divem&amp;nbsp;&lt;em&gt;&quot;recentNews&quot;&lt;/em&gt;, aczkolwiek nie jestem pewien czy takie rozwiązanie będzie w ogóle miało prawo działać.
&lt;br&gt;
Z góry dzięki za wszystkie odpowiedzi.&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/557578/spring-boot-aplikacja-dla-wielu-stron-internetowych</guid>
<pubDate>Thu, 23 Dec 2021 16:58:47 +0000</pubDate>
</item>
<item>
<title>jak umieścić przesłany wcześniej obiekt do input w form</title>
<link>https://forum.pasja-informatyki.pl/555514/jak-umiescic-przeslany-wczesniej-obiekt-do-input-w-form</link>
<description>

&lt;p&gt;Cześć,&lt;/p&gt;



&lt;p&gt;próbuję zrobić prosty sklep i napotkałem przeszkodę do której nie mogę znaleźć rozwiązania. W jaki sposób mogę wrzucić jakiś obiekt bezpośrednio w &amp;lt;input&amp;gt; w &amp;lt;form&amp;gt;?&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
&amp;lt;table class=&quot;tableTest&quot;&amp;gt;
            &amp;lt;tr class=&quot;productP&quot; th:each=&quot;product : ${products}&quot;&amp;gt;
                &amp;lt;td&amp;gt;
                    &amp;lt;a th:href=&quot;@{/products/produkt}&quot;&amp;gt;
                        &amp;lt;div class=&quot;product&quot;&amp;gt;

                            &amp;lt;div class=&quot;miniatureImage&quot;&amp;gt;&amp;lt;img th:src=&quot;${product.getImageUrl()}&quot; th:width=&quot;200&quot;
                                                             th:height=&quot;164&quot;/&amp;gt;&amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;producer&quot; th:text=&quot;${product.getProducer()}&quot;&amp;gt;&amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;model&quot; th:text=&quot;${product.getModel()}&quot;&amp;gt;&amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;paramterers&quot; th:text=&quot;${product.getParameters()}&quot;&amp;gt;&amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;price&quot; th:text=&quot;${product.getPrice()}&quot;&amp;gt;&amp;lt;/div&amp;gt;

                            &amp;lt;form action=&quot;#&quot; th:action=&quot;@{/products/produkt}&quot; method=&quot;post&quot; th:object=&quot;${productForm}&quot;&amp;gt;
                                &amp;lt;input type=&quot;hidden&quot; th:field=&quot;*{choosedProduct}&quot; th:value=&quot;${product}&quot;&amp;gt;${product}&amp;lt;/input&amp;gt;
                                &amp;lt;button class=&quot;addToBusket&quot; th:type=&quot;submit&quot;&amp;gt;Do koszyka&amp;lt;/button&amp;gt;
                            &amp;lt;/form&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/a&amp;gt;
                &amp;lt;/td&amp;gt;
            &amp;lt;/tr&amp;gt;
        &amp;lt;/table&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;i teraz w jaki sposób mogę uzupełnić ten input aktualnym produktem z forEach?&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;form action=&quot;#&quot; th:action=&quot;@{/products/produkt}&quot; method=&quot;post&quot; th:object=&quot;${productForm}&quot;&amp;gt;
                                &amp;lt;input type=&quot;hidden&quot; th:field=&quot;*{choosedProduct}&quot; th:value=&quot;${product}&quot;&amp;gt;${product}&amp;lt;/input&amp;gt;
                                &amp;lt;button class=&quot;addToBusket&quot; th:type=&quot;submit&quot;&amp;gt;Do koszyka&amp;lt;/button&amp;gt;
                            &amp;lt;/form&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;po prostu chcę aby &quot;choosedProduct&quot; był po prostu tym aktualnym produktem który zostanie przesłany dalej.&lt;/p&gt;</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/555514/jak-umiescic-przeslany-wczesniej-obiekt-do-input-w-form</guid>
<pubDate>Mon, 22 Nov 2021 20:59:44 +0000</pubDate>
</item>
<item>
<title>jak dodać podstronę w thymeleaf</title>
<link>https://forum.pasja-informatyki.pl/541264/jak-dodac-podstrone-w-thymeleaf</link>
<description>

&lt;p&gt;cześć mam dwa pliki html w thymealeaf i nie wiem jak do głównego mogę podlinkować drugi. Spróbowalem podlinkować to tormalnie przez href ale nie działa&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;a href=&quot;strona2.html&quot;&amp;gt;druga strona&amp;lt;/a&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/541264/jak-dodac-podstrone-w-thymeleaf</guid>
<pubDate>Sun, 16 May 2021 13:45:19 +0000</pubDate>
</item>
<item>
<title>Spring Boot - upload and display img</title>
<link>https://forum.pasja-informatyki.pl/506130/spring-boot-upload-and-display-img</link>
<description>

&lt;p&gt;
&lt;br&gt;
Mój kontroler
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre&gt;
@Controller
public class UploadFileController {
    public static String uploadDirectory = System.getProperty(&quot;user.dir&quot;) + &quot;/uploads&quot;;

    @RequestMapping(&quot;/&quot;)
    public String uploadPage(Model model) {
        return &quot;uploadview&quot;;
    }

    @RequestMapping(&quot;/upload&quot;)
    public String upload(Model model, @RequestParam(&quot;files&quot;)MultipartFile[] files) {
        StringBuilder fileNames = new StringBuilder();

        for(MultipartFile file : files) {
            Path fileNameAndPath = Paths.get(uploadDirectory, file.getOriginalFilename());
            fileNames.append(file.getOriginalFilename());
            try {
                Files.write(fileNameAndPath, file.getBytes());
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        model.addAttribute(&quot;msg&quot;, &quot;Udalo sie wrzucic pliki&quot; + fileNames.toString());
        return &quot;uploadstatusview&quot;;
    }
}&lt;/pre&gt;



&lt;p&gt;Witam, mam mały problem, z którym się męczę od jakiegoś czasu.
&lt;br&gt;
Mianowicie prosta web apka. Spring-boot plus thymeleaf, bez bazy danych.
&lt;br&gt;
Wrzucam zdjęcie , które się zapisuje w katalogu projektu w folderze &lt;em&gt;uploads &lt;/em&gt;i to ładnie działa, ale teraz chciał bym to zdjęcie wrzucić na strone. Moje pytanie brzmi jak mniej więcej się za to zabrać? Stworzyć metodę z @PostMapping, która wysyła dany plik plus do tego jakiś tag z thymeleaf'a czy można to zrobić bezpośrednio przy wrzucaniu?&amp;nbsp;
&lt;br&gt;
Prosił bym ewentualnie o linki do dokumentacji czy coś takiego, z góry dzięki za odpowiedź.&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/506130/spring-boot-upload-and-display-img</guid>
<pubDate>Fri, 28 Aug 2020 11:04:49 +0000</pubDate>
</item>
<item>
<title>Thymeleaf, różnice między @, $ oraz *</title>
<link>https://forum.pasja-informatyki.pl/502308/thymeleaf-roznice-miedzy-%40-%24-oraz</link>
<description>Witam. Tak jak w temacie. Jakie są różnice między th:field=&amp;quot;@{}&amp;quot;, th:field=&amp;quot;${}&amp;quot;, oraz th:field=&amp;quot;*{}&amp;quot;?</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/502308/thymeleaf-roznice-miedzy-%40-%24-oraz</guid>
<pubDate>Mon, 03 Aug 2020 10:09:11 +0000</pubDate>
</item>
<item>
<title>Thymeleaf - Ustawienie properties dla background image</title>
<link>https://forum.pasja-informatyki.pl/481972/thymeleaf-ustawienie-properties-dla-background-image</link>
<description>

&lt;p&gt;Mam problem z ustawienie properties dla obrazu który ma wyświetlać się jako background image na głównej stornie&lt;/p&gt;



&lt;p&gt;Próbowałem ustawić obraz najpierw w pliku css, jednak obraz się nie ładował (ścieżka css do pliku thymeleaf była poprawnie ustawiona, wszystkie inne properties się ustawiły poprawnie).
&lt;br&gt;

&lt;br&gt;
Następnie znalazłem że można ustawić obraz w samym thymeleaf'ie i tak zrobiłem&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
&amp;lt;body th:style=&quot;'background: url(images/image1.jpg)'&quot;&amp;gt;&lt;/pre&gt;



&lt;p&gt;obraz się ładuje, jednak nie mogę ustawić dla niego properties.&lt;/p&gt;



&lt;p&gt;mogę też dodać niektóre zależności za nawiasem po spacji, jednak jeżeli dodaje np.&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:css;&quot;&gt;
cover&lt;/pre&gt;



&lt;p&gt;po przecinku, to obraz się nie ładuje
&lt;br&gt;

&lt;br&gt;
przy tworzeniu tej strony używałem Visual Studio Code&amp;nbsp;i tam podawałem takie zależności jak :
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:css;&quot;&gt;
.container{
background-image: url('image1.jpg');
height: 100%;
background-position: center;
background-repeat: no-repeat;
background-size: cover;
}
&lt;/pre&gt;



&lt;p&gt;Pytanie: jak ustawić te properties aby działały również w thymeleaf ?&lt;/p&gt;



&lt;p&gt;Chciałbym aby obraz po prostu był dopasowany na całą szerokość i wysokość strony, oraz był wycentrowany.&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/481972/thymeleaf-ustawienie-properties-dla-background-image</guid>
<pubDate>Tue, 14 Apr 2020 13:40:21 +0000</pubDate>
</item>
<item>
<title>Spring MVC + thymeleaf -&gt; jak wyciągnąć listę z widoku</title>
<link>https://forum.pasja-informatyki.pl/468949/spring-mvc-thymeleaf-jak-wyciagnac-liste-z-widoku</link>
<description>

&lt;p&gt;Hej. Używając Springa MVC, przekazuję do widoku kilka list obiektów. Użytkownika może wybrać po jednym obiekcie (które reprezentuje zwykły napis na stronie) z każdej listy. Następnie wysyłając metodą POST, strona musi przechwycić formularz i z&amp;nbsp; tych wybranych obiektów utworzyć nową listę. Jednak przy próbuje wysłania formularza otrzymuję komunikat &quot;Failed to convert property value of type java.lang.String[] to required type java.util.List for property ingredients; nested exception is java.lang.IllegalStateException: Cannot convert value of type java.lang.String to required type tacos.domain.Ingredient for property ingredients[0]: no matching editors or conversion strategy found&quot;.
&lt;br&gt;

&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre&gt;
@ModelAttribute(name = &quot;taco&quot;)
public Taco taco() {
    return new Taco();
}&lt;/pre&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;

@GetMapping
    public String showDesignForm(Model model) {
        List&amp;lt;Ingredient&amp;gt; ingredients = new ArrayList&amp;lt;&amp;gt;();
        ingredientRepository.findaAll().forEach(ingredients::add);
        Type[] types = Ingredient.Type.values();
        for (Type type : types) {
            model.addAttribute(type.toString().toLowerCase(), filterByType(ingredients, type));
        }
        return &quot;design&quot;;
    }&lt;/pre&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
@PostMapping
    public String processDesign(@Valid Taco taco, Errors errors, @ModelAttribute Order order) {
        if (errors.hasErrors()) {
            return &quot;design&quot;;
        }
        Taco saved = designRepo.save(taco);
        order.addDesign(saved);
        return &quot;redirect:/orders/current&quot;;
    }&lt;/pre&gt;



&lt;p&gt;
&lt;br&gt;

&lt;br&gt;
Widok html:
&lt;br&gt;

&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot; xmlns=&quot;http://www.w3.org/1999/xhtml&quot; xmlns:th=&quot;http://www.thymeleaf.org&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;title&amp;gt;Aplikacja Taco Cloud&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
    &amp;lt;h1&amp;gt;Przygotuj własne Taco!&amp;lt;/h1&amp;gt;
    &amp;lt;img th:src=&quot;@{/images/TacoCloud.png}&quot; alt=&quot;&quot;&amp;gt;
    &amp;lt;form method=&quot;POST&quot; th:object=&quot;${taco}&quot;&amp;gt;

        &amp;lt;span class=&quot;validationError&quot;
              th:if=&quot;${#fields.hasErrors('ingredients')}&quot;
              th:errors=&quot;*{ingredients}&quot;&amp;gt;Ingredient Error&amp;lt;/span&amp;gt;

        &amp;lt;div class=&quot;grid&quot;&amp;gt;
            &amp;lt;div class=&quot;ingredient-group&quot; id=&quot;wraps&quot;&amp;gt;
                &amp;lt;h3&amp;gt;Wybierz rodzaj mąki:&amp;lt;/h3&amp;gt;
                &amp;lt;div th:each=&quot;ingredient : ${wrap}&quot;&amp;gt;
                    &amp;lt;input type=&quot;checkbox&quot; th:name=&quot;ingredients&quot; th:value=&quot;${ingredient.id}&quot;/&amp;gt;
                    &amp;lt;span th:text=&quot;${ingredient.name}&quot;&amp;gt;Składnik&amp;lt;/span&amp;gt;&amp;lt;br/&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&quot;ingredient-group&quot; id=&quot;proteins&quot;&amp;gt;
                &amp;lt;h3&amp;gt;Wybierz mięso:&amp;lt;/h3&amp;gt;
                &amp;lt;div th:each=&quot;ingredient : ${protein}&quot;&amp;gt;
                    &amp;lt;input type=&quot;checkbox&quot; th:name=&quot;ingredients&quot; th:value=&quot;${ingredient.id}&quot;/&amp;gt;
                    &amp;lt;span th:text=&quot;${ingredient.name}&quot;&amp;gt;Składnik&amp;lt;/span&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&quot;ingredient-group&quot; id=&quot;cheeses&quot;&amp;gt;
                &amp;lt;h3&amp;gt;Wybierz sery:&amp;lt;/h3&amp;gt;
                &amp;lt;div th:each=&quot;ingredient : ${cheese}&quot;&amp;gt;
                    &amp;lt;input type=&quot;checkbox&quot; th:name=&quot;ingredients&quot; th:value=&quot;${ingredient.id}&quot; /&amp;gt;
                    &amp;lt;span th:text=&quot;${ingredient.name}&quot;&amp;gt;Składnik&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&quot;ingredient-group&quot; id=&quot;veggies&quot;&amp;gt;
                &amp;lt;h3&amp;gt;Wybierz warzywa:&amp;lt;/h3&amp;gt;
                &amp;lt;div th:each=&quot;ingredient : ${veggies}&quot;&amp;gt;
                    &amp;lt;input type=&quot;checkbox&quot; th:name=&quot;ingredients&quot; th:value=&quot;${ingredient.id}&quot; /&amp;gt;
                    &amp;lt;span th:text=&quot;${ingredient.name}&quot;&amp;gt;Składnik&amp;lt;/span&amp;gt;&amp;lt;br&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
            &amp;lt;div class=&quot;ingredient-group&quot; id=&quot;sauces&quot;&amp;gt;
                &amp;lt;h3&amp;gt;Wybierz sosy:&amp;lt;/h3&amp;gt;
                &amp;lt;div th:each=&quot;ingredient : ${sauce}&quot;&amp;gt;
                    &amp;lt;input type=&quot;checkbox&quot; th:name=&quot;ingredients&quot; th:value=&quot;${ingredient.id}&quot;/&amp;gt;
                    &amp;lt;span th:text=&quot;${ingredient.name}&quot;&amp;gt;Składnik&amp;lt;/span&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
        &amp;lt;div&amp;gt;
        &amp;lt;h3&amp;gt;Nadaj nazwę przygotowanemu taco:&amp;lt;/h3&amp;gt;
        &amp;lt;input type=&quot;text&quot; th:field=&quot;*{name}&quot;/&amp;gt;
            &amp;lt;span class=&quot;validationError&quot;
                  th:if=&quot;${#fields.hasErrors('name')}&quot;
                  th:errors=&quot;*{name}&quot;&amp;gt;Name Error&amp;lt;/span&amp;gt;
            &amp;lt;br/&amp;gt;
        &amp;lt;br&amp;gt;
        &amp;lt;button&amp;gt;Wyślij swoje zamówienie&amp;lt;/button&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/form&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;
&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/468949/spring-mvc-thymeleaf-jak-wyciagnac-liste-z-widoku</guid>
<pubDate>Sun, 26 Jan 2020 20:55:44 +0000</pubDate>
</item>
<item>
<title>Spring i thymeleaf - ukrycie linków, kiedy nie jest zalogowany admin</title>
<link>https://forum.pasja-informatyki.pl/425746/spring-i-thymeleaf-ukrycie-linkow-kiedy-nie-jest-zalogowany-admin</link>
<description>Hej. W bazie mysql mam zapisanych użytkowników i powiązaną tabelę z ich rolami. W jaki sposób mogę ukryć link kierujący do panelu administratora dla każdego, kto nie ma przypisanej roli administrator?</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/425746/spring-i-thymeleaf-ukrycie-linkow-kiedy-nie-jest-zalogowany-admin</guid>
<pubDate>Mon, 15 Apr 2019 15:15:29 +0000</pubDate>
</item>
<item>
<title>Spring + thymeleaf - problem z importowaniem pliku css</title>
<link>https://forum.pasja-informatyki.pl/415328/spring-thymeleaf-problem-z-importowaniem-pliku-css</link>
<description>

&lt;p&gt;Witam, pisze sobie swoj projekt jakis juz czas i chcialem w koncu zrobic jakis front do niego i tu pojawia sie problem. Przeszukalem mase tematow w sieci i dalej nie dziala mi importowanie pliku css. Dostaje kod 200 czyli spring security nie blokuje mi go. Jeszcze zastanawia mnie jedno, dlaczego gdy sprawcam F12 w przegladarce, to kod style.css jest taki sam jak html?&amp;nbsp; Pomoze ktos? Zalaczam link do githuba i screeny.&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://github.com/RobertKrzywina/project&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/RobertKrzywina/project&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=7404920663151677333&quot; style=&quot;height:101px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=10470015919702609912&quot; style=&quot;height:358px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=15358713460448336332&quot; style=&quot;height:279px; width:600px&quot;&gt;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/415328/spring-thymeleaf-problem-z-importowaniem-pliku-css</guid>
<pubDate>Tue, 19 Feb 2019 17:07:28 +0000</pubDate>
</item>
<item>
<title>Spring boot, powiadomienia</title>
<link>https://forum.pasja-informatyki.pl/410513/spring-boot-powiadomienia</link>
<description>Witam,&lt;br /&gt;
&lt;br /&gt;
piszę aplikacje z użyciem Spring boota i mysql. Teraz chcę zrobić taką rzecz, żeby po przydzieleniu zadania pracownikowi wysyłało powiadomienie właśnie dla tego pracownika. Chciałem to tak zrobić żeby utworzyć metodę findByEmail, wziąć ip przypisane do meila i jakoś to wysłać na stronę główną pracownika. Problem jest taki że nie wiem jak wysłać.</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/410513/spring-boot-powiadomienia</guid>
<pubDate>Tue, 29 Jan 2019 19:55:50 +0000</pubDate>
</item>
<item>
<title>Dwa pytanie odnośnie do mapowania ścieżek w Spring Boot</title>
<link>https://forum.pasja-informatyki.pl/410443/dwa-pytanie-odnosnie-do-mapowania-sciezek-w-spring-boot</link>
<description>

&lt;p&gt;Hej. Jak poprawnie określić ścieżkę do folderu /resources/ w projekcie Spring Boot? Obecnie używam całej ścieżki na dysku, co jest strasznie niepraktyczne, bo na innym komputerze nie będzie działało :)&amp;nbsp;
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
C:\Users\Tomek\Documents\Projekty\IntelliJ\shelter\src\main\resources&lt;/pre&gt;



&lt;p&gt;Następna kwestia. Na stronie html z wykorzystaniem thymeleaf wyświetlam potem zdjęcie z wyżej wymienionego folder, lecz zdjęcie pojawia się tylko wtedy, kiedy uruchomię ponownie aplikację. Co zrobić, żeby zdjęcie wyświetlało się poprawnie już po wysłaniu formularza bez konieczności uruchamiania ponownie całej aplikacji?&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/410443/dwa-pytanie-odnosnie-do-mapowania-sciezek-w-spring-boot</guid>
<pubDate>Tue, 29 Jan 2019 17:22:02 +0000</pubDate>
</item>
<item>
<title>Spring + thymeleaf - strona nie ładuje pliku css</title>
<link>https://forum.pasja-informatyki.pl/409730/spring-thymeleaf-strona-nie-laduje-pliku-css</link>
<description>

&lt;p&gt;Hej.
&lt;br&gt;

&lt;br&gt;
W projekcie Spring używam standardowych rzeczy: Data, Security, Thymeleaf.
&lt;br&gt;

&lt;br&gt;
Dodałem niedawno nową podstronę html i po przejściu na nią w uruchomionej aplikacji dev tools w chrome pokazuje to:
&lt;br&gt;

&lt;br&gt;
&quot;Refused to apply style from 'http://localhost:8080/seeDetails/details.css' because its MIME type ('application/json') is not a supported stylesheet MIME type, and strict MIME checking is enabled.&quot;
&lt;br&gt;

&lt;br&gt;
Pliki są w folderze resources/static
&lt;br&gt;

&lt;br&gt;
Nie rozumiem tego, bo wszystkie inne podstrony działają. W configu Spring Security ustawiłem coś takiego:
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
@Override
	protected void configure(HttpSecurity http) throws Exception{
		http
		.sessionManagement()
        	.sessionCreationPolicy(SessionCreationPolicy.ALWAYS)
        	.and()
		.authorizeRequests()
		    .antMatchers(&quot;/addAnimal&quot;).authenticated()
			.anyRequest().permitAll()
			.and()
		.formLogin()
			.loginPage(&quot;/login&quot;)
			.permitAll()
			.and()
		.logout()
			.permitAll();
	}&lt;/pre&gt;



&lt;p&gt;żeby nie blokowało zasobów, ale na nic się to zdało :/&amp;nbsp;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/409730/spring-thymeleaf-strona-nie-laduje-pliku-css</guid>
<pubDate>Sat, 26 Jan 2019 12:04:58 +0000</pubDate>
</item>
<item>
<title>Nie pokazuje zawartości diva [java,thymeleaf]</title>
<link>https://forum.pasja-informatyki.pl/379579/nie-pokazuje-zawartosci-diva-java-thymeleaf</link>
<description>

&lt;p&gt;cześć,&lt;/p&gt;



&lt;p&gt;chciałem zrobić aplikacje webową ( w javie ) zatem zabrałem się pierw od stworzenia wyglądu. Jako, że z fronendem u mnie cienko to chciałem posłużyć się gotowymi szablonami np. bootstrap navbar. Używam dodatkowo thymeleaf. Skopiowałem przykładowy pasek nawigacyjny jednak wygląda on tak:&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=12818207108698927630&quot; style=&quot;height:139px; width:340px&quot;&gt;&lt;/p&gt;



&lt;p&gt;Zamiast tak:&lt;/p&gt;



&lt;p&gt;&lt;img alt=&quot;&quot; src=&quot;https://forum.pasja-informatyki.pl/?qa=blob&amp;amp;qa_blobid=14022415891776908852&quot; style=&quot;height:35px; width:600px&quot;&gt;&lt;/p&gt;



&lt;p&gt;Skopiowany kod 1:1 ze strony: &lt;a href=&quot;https://getbootstrap.com/docs/4.0/components/navbar/&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://getbootstrap.com/docs/4.0/components/navbar/&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;z dopiskiem jedynie:&amp;nbsp;th:fragment=&quot;header&quot;&amp;gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html xmlns:th=&quot;http://www.thymeleaf.org&quot;&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
&amp;lt;title&amp;gt;Insert title here&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	
	&amp;lt;div class=&quot;navbar navbar-expand-lg navbar-light bg-light&quot; 	th:fragment=&quot;header&quot;&amp;gt;
  &amp;lt;a class=&quot;navbar-brand&quot; href=&quot;#&quot;&amp;gt;Navbar&amp;lt;/a&amp;gt;
  &amp;lt;button class=&quot;navbar-toggler&quot; type=&quot;button&quot; data-toggle=&quot;collapse&quot; data-target=&quot;#navbarNavDropdown&quot; aria-controls=&quot;navbarNavDropdown&quot; aria-expanded=&quot;false&quot; aria-label=&quot;Toggle navigation&quot;&amp;gt;
    &amp;lt;span class=&quot;navbar-toggler-icon&quot;&amp;gt;&amp;lt;/span&amp;gt;
  &amp;lt;/button&amp;gt;
  &amp;lt;div class=&quot;collapse navbar-collapse&quot; id=&quot;navbarNavDropdown&quot;&amp;gt;
    &amp;lt;ul class=&quot;navbar-nav&quot;&amp;gt;
      &amp;lt;li class=&quot;nav-item active&quot;&amp;gt;
        &amp;lt;a class=&quot;nav-link&quot; href=&quot;#&quot;&amp;gt;Home &amp;lt;span class=&quot;sr-only&quot;&amp;gt;(current)&amp;lt;/span&amp;gt;&amp;lt;/a&amp;gt;
      &amp;lt;/li&amp;gt;
      &amp;lt;li class=&quot;nav-item&quot;&amp;gt;
        &amp;lt;a class=&quot;nav-link&quot; href=&quot;#&quot;&amp;gt;Features&amp;lt;/a&amp;gt;
      &amp;lt;/li&amp;gt;
      &amp;lt;li class=&quot;nav-item&quot;&amp;gt;
        &amp;lt;a class=&quot;nav-link&quot; href=&quot;#&quot;&amp;gt;Pricing&amp;lt;/a&amp;gt;
      &amp;lt;/li&amp;gt;
      &amp;lt;li class=&quot;nav-item dropdown&quot;&amp;gt;
        &amp;lt;a class=&quot;nav-link dropdown-toggle&quot; href=&quot;#&quot; id=&quot;navbarDropdownMenuLink&quot; data-toggle=&quot;dropdown&quot; aria-haspopup=&quot;true&quot; aria-expanded=&quot;false&quot;&amp;gt;
          Dropdown link
        &amp;lt;/a&amp;gt;
        &amp;lt;div class=&quot;dropdown-menu&quot; aria-labelledby=&quot;navbarDropdownMenuLink&quot;&amp;gt;
          &amp;lt;a class=&quot;dropdown-item&quot; href=&quot;#&quot;&amp;gt;Action&amp;lt;/a&amp;gt;
          &amp;lt;a class=&quot;dropdown-item&quot; href=&quot;#&quot;&amp;gt;Another action&amp;lt;/a&amp;gt;
          &amp;lt;a class=&quot;dropdown-item&quot; href=&quot;#&quot;&amp;gt;Something else here&amp;lt;/a&amp;gt;
        &amp;lt;/div&amp;gt;
      &amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
  &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;



&lt;p&gt;Plik znajduje się w :&amp;nbsp;MojaNazwaAplikacji\src\main\resources\templates\header.html&lt;/p&gt;



&lt;p&gt;wraz z innymi plikami jak index.html czy footer.html&lt;/p&gt;



&lt;p&gt;Jakieś pomysły? :)&lt;/p&gt;</description>
<category>HTML i CSS</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/379579/nie-pokazuje-zawartosci-diva-java-thymeleaf</guid>
<pubDate>Thu, 13 Sep 2018 10:47:43 +0000</pubDate>
</item>
<item>
<title>Spring Quartz i PostresSQL</title>
<link>https://forum.pasja-informatyki.pl/365821/spring-quartz-i-postressql</link>
<description>

&lt;p&gt;Witam. Mam problem z Spring Quart Scheduler. A mianowicie mam program który działa elegancko na bazie danych h2. Jednak chce go zmienić na postressql. Sciągam więc zamiast skrypt tworzenia danych na h2 dla postgresa i bum wyskakują błędy. Przeczytałem gdzieś ze trzeba dodać&amp;nbsp;&amp;nbsp;plik quart.properties i dodać org.quartz.dataSource.default.driver = org.quartz.impl.jdbcjobstore.PostgreSQLDelegate jednak to nie pomogło ....&amp;nbsp;
&lt;br&gt;
Link do gita z projektem:
&lt;br&gt;
&lt;a href=&quot;https://github.com/Redzikes/test5/tree/master/src/main&amp;nbsp;&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Redzikes/test5/tree/master/src/main&amp;nbsp;&lt;/a&gt;&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
org.springframework.context.ApplicationContextException: Failed to start bean 'schedulerFactoryBean'; nested exception is org.springframework.scheduling.SchedulingException: Could not start Quartz Scheduler; nested exception is org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.JobPersistenceException: Couldn't retrieve trigger: Zła wartość dla typu long: \xaced0005737200156f72672e71756172747a2e4a6f62446174614d61709fb083e8bfa9b0cb020000787200266f72672e71756172747a2e7574696c732e537472696e674b65794469727479466c61674d61708208e8c3fbc55d280200015a0013616c6c6f77735472616e7369656e74446174617872001d6f72672e71756172747a2e7574696c732e4469727479466c61674d617013e62ead28760ace0200025a000564697274794c00036d617074000f4c6a6176612f7574696c2f4d61703b787001737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c770800000010000000017400096a6f6244657461696c7372001d6f72672e71756172747a2e696d706c2e4a6f6244657461696c496d706cabc3caec015a54af0200075a000a6475726162696c6974795a000d73686f756c645265636f7665724c000b6465736372697074696f6e7400124c6a6176612f6c616e672f537472696e673b4c000567726f757071007e00094c00086a6f62436c6173737400114c6a6176612f6c616e672f436c6173733b4c000a6a6f62446174614d61707400174c6f72672f71756172747a2f4a6f62446174614d61703b4c00046e616d6571007e0009787001007074000744454641554c5476720026706c2e78656e7469766f2e61707032776f726b2e717561727a2e6a6f622e456d61696c4a6f62000000000000000000000078707371007e0000017371007e00053f4000000000000c77080000001000000001740002573174000761736461647361780074001f64796e616d69634a6f624265616e31353331353930343132333035686f6d657800 [See nested exception: org.postgresql.util.PSQLException: Zła wartość dla typu long: \xaced0005737200156f72672e71756172747a2e4a6f62446174614d61709fb083e8bfa9b0cb020000787200266f72672e71756172747a2e7574696c732e537472696e674b65794469727479466c61674d61708208e8c3fbc55d280200015a0013616c6c6f77735472616e7369656e74446174617872001d6f72672e71756172747a2e7574696c732e4469727479466c61674d617013e62ead28760ace0200025a000564697274794c00036d617074000f4c6a6176612f7574696c2f4d61703b787001737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c770800000010000000017400096a6f6244657461696c7372001d6f72672e71756172747a2e696d706c2e4a6f6244657461696c496d706cabc3caec015a54af0200075a000a6475726162696c6974795a000d73686f756c645265636f7665724c000b6465736372697074696f6e7400124c6a6176612f6c616e672f537472696e673b4c000567726f757071007e00094c00086a6f62436c6173737400114c6a6176612f6c616e672f436c6173733b4c000a6a6f62446174614d61707400174c6f72672f71756172747a2f4a6f62446174614d61703b4c00046e616d6571007e0009787001007074000744454641554c5476720026706c2e78656e7469766f2e61707032776f726b2e717561727a2e6a6f622e456d61696c4a6f62000000000000000000000078707371007e0000017371007e00053f4000000000000c77080000001000000001740002573174000761736461647361780074001f64796e616d69634a6f624265616e31353331353930343132333035686f6d657800]]
at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:178) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.access$200(DefaultLifecycleProcessor.java:50) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor$LifecycleGroup.start(DefaultLifecycleProcessor.java:348) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.startBeans(DefaultLifecycleProcessor.java:151) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.context.support.DefaultLifecycleProcessor.onRefresh(DefaultLifecycleProcessor.java:114) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:880) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144) ~[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:546) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE]
at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) ~[spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:303) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1118) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1107) [spring-boot-1.5.9.RELEASE.jar:1.5.9.RELEASE]
at pl.xentivo.app2work.quarz.Application.main(Application.java:10) [classes/:na]
Caused by: org.springframework.scheduling.SchedulingException: Could not start Quartz Scheduler; nested exception is org.quartz.SchedulerConfigException: Failure occured during job recovery. [See nested exception: org.quartz.JobPersistenceException: Couldn't retrieve trigger: Zła wartość dla typu long: \xaced0005737200156f72672e71756172747a2e4a6f62446174614d61709fb083e8bfa9b0cb020000787200266f72672e71756172747a2e7574696c732e537472696e674b65794469727479466c61674d61708208e8c3fbc55d280200015a0013616c6c6f77735472616e7369656e74446174617872001d6f72672e71756172747a2e7574696c732e4469727479466c61674d617013e62ead28760ace0200025a000564697274794c00036d617074000f4c6a6176612f7574696c2f4d61703b787001737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c770800000010000000017400096a6f6244657461696c7372001d6f72672e71756172747a2e696d706c2e4a6f6244657461696c496d706cabc3caec015a54af0200075a000a6475726162696c6974795a000d73686f756c645265636f7665724c000b6465736372697074696f6e7400124c6a6176612f6c616e672f537472696e673b4c000567726f757071007e00094c00086a6f62436c6173737400114c6a6176612f6c616e672f436c6173733b4c000a6a6f62446174614d61707400174c6f72672f71756172747a2f4a6f62446174614d61703b4c00046e616d6571007e0009787001007074000744454641554c5476720026706c2e78656e7469766f2e61707032776f726b2e717561727a2e6a6f622e456d61696c4a6f62000000000000000000000078707371007e0000017371007e00053f4000000000000c77080000001000000001740002573174000761736461647361780074001f64796e616d69634a6f624265616e31353331353930343132333035686f6d657800 [See nested exception: org.postgresql.util.PSQLException: Zła wartość dla typu long: \xaced0005737200156f72672e71756172747a2e4a6f62446174614d61709fb083e8bfa9b0cb020000787200266f72672e71756172747a2e7574696c732e537472696e674b65794469727479466c61674d61708208e8c3fbc55d280200015a0013616c6c6f77735472616e7369656e74446174617872001d6f72672e71756172747a2e7574696c732e4469727479466c61674d617013e62ead28760ace0200025a000564697274794c00036d617074000f4c6a6176612f7574696c2f4d61703b787001737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c770800000010000000017400096a6f6244657461696c7372001d6f72672e71756172747a2e696d706c2e4a6f6244657461696c496d706cabc3caec015a54af0200075a000a6475726162696c6974795a000d73686f756c645265636f7665724c000b6465736372697074696f6e7400124c6a6176612f6c616e672f537472696e673b4c000567726f757071007e00094c00086a6f62436c6173737400114c6a6176612f6c616e672f436c6173733b4c000a6a6f62446174614d61707400174c6f72672f71756172747a2f4a6f62446174614d61703b4c00046e616d6571007e0009787001007074000744454641554c5476720026706c2e78656e7469766f2e61707032776f726b2e717561727a2e6a6f622e456d61696c4a6f62000000000000000000000078707371007e0000017371007e00053f4000000000000c77080000001000000001740002573174000761736461647361780074001f64796e616d69634a6f624265616e31353331353930343132333035686f6d657800]] at org.springframework.scheduling.quartz.SchedulerFactoryBean.start(SchedulerFactoryBean.java:718) ~[spring-context-support-4.3.13.RELEASE.jar:4.3.13.RELEASE] at org.springframework.context.support.DefaultLifecycleProcessor.doStart(DefaultLifecycleProcessor.java:175) ~[spring-context-4.3.13.RELEASE.jar:4.3.13.RELEASE] ... 14 common frames omitted Caused by: org.quartz.SchedulerConfigException: Failure occured during job recovery. at org.quartz.impl.jdbcjobstore.JobStoreSupport.schedulerStarted(JobStoreSupport.java:692) ~[quartz-2.2.1.jar:na] at org.quartz.core.QuartzScheduler.start(QuartzScheduler.java:567) ~[quartz-2.2.1.jar:na] at org.quartz.impl.StdScheduler.start(StdScheduler.java:142) ~[quartz-2.2.1.jar:na] at org.springframework.scheduling.quartz.SchedulerFactoryBean.startScheduler(SchedulerFactoryBean.java:646) ~[spring-context-support-4.3.13.RELEASE.jar:4.3.13.RELEASE] at org.springframework.scheduling.quartz.SchedulerFactoryBean.start(SchedulerFactoryBean.java:715) ~[spring-context-support-4.3.13.RELEASE.jar:4.3.13.RELEASE] ... 15 common frames omitted Caused by: org.quartz.JobPersistenceException: Couldn't retrieve trigger: Zła wartość dla typu long: \xaced0005737200156f72672e71756172747a2e4a6f62446174614d61709fb083e8bfa9b0cb020000787200266f72672e71756172747a2e7574696c732e537472696e674b65794469727479466c61674d61708208e8c3fbc55d280200015a0013616c6c6f77735472616e7369656e74446174617872001d6f72672e71756172747a2e7574696c732e4469727479466c61674d617013e62ead28760ace0200025a000564697274794c00036d617074000f4c6a6176612f7574696c2f4d61703b787001737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c770800000010000000017400096a6f6244657461696c7372001d6f72672e71756172747a2e696d706c2e4a6f6244657461696c496d706cabc3caec015a54af0200075a000a6475726162696c6974795a000d73686f756c645265636f7665724c000b6465736372697074696f6e7400124c6a6176612f6c616e672f537472696e673b4c000567726f757071007e00094c00086a6f62436c6173737400114c6a6176612f6c616e672f436c6173733b4c000a6a6f62446174614d61707400174c6f72672f71756172747a2f4a6f62446174614d61703b4c00046e616d6571007e0009787001007074000744454641554c5476720026706c2e78656e7469766f2e61707032776f726b2e717561727a2e6a6f622e456d61696c4a6f62000000000000000000000078707371007e0000017371007e00053f4000000000000c77080000001000000001740002573174000761736461647361780074001f64796e616d69634a6f624265616e31353331353930343132333035686f6d657800 at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1533) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverMisfiredJobs(JobStoreSupport.java:979) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverJobs(JobStoreSupport.java:866) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport$1.executeVoid(JobStoreSupport.java:838) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3703) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport$VoidTransactionCallback.execute(JobStoreSupport.java:3701) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport.executeInNonManagedTXLock(JobStoreSupport.java:3787) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport.recoverJobs(JobStoreSupport.java:834) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport.schedulerStarted(JobStoreSupport.java:690) ~[quartz-2.2.1.jar:na] ... 19 common frames omitted Caused by: org.postgresql.util.PSQLException: Zła wartość dla typu long: \xaced0005737200156f72672e71756172747a2e4a6f62446174614d61709fb083e8bfa9b0cb020000787200266f72672e71756172747a2e7574696c732e537472696e674b65794469727479466c61674d61708208e8c3fbc55d280200015a0013616c6c6f77735472616e7369656e74446174617872001d6f72672e71756172747a2e7574696c732e4469727479466c61674d617013e62ead28760ace0200025a000564697274794c00036d617074000f4c6a6176612f7574696c2f4d61703b787001737200116a6176612e7574696c2e486173684d61700507dac1c31660d103000246000a6c6f6164466163746f724900097468726573686f6c6478703f4000000000000c770800000010000000017400096a6f6244657461696c7372001d6f72672e71756172747a2e696d706c2e4a6f6244657461696c496d706cabc3caec015a54af0200075a000a6475726162696c6974795a000d73686f756c645265636f7665724c000b6465736372697074696f6e7400124c6a6176612f6c616e672f537472696e673b4c000567726f757071007e00094c00086a6f62436c6173737400114c6a6176612f6c616e672f436c6173733b4c000a6a6f62446174614d61707400174c6f72672f71756172747a2f4a6f62446174614d61703b4c00046e616d6571007e0009787001007074000744454641554c5476720026706c2e78656e7469766f2e61707032776f726b2e717561727a2e6a6f622e456d61696c4a6f62000000000000000000000078707371007e0000017371007e00053f4000000000000c77080000001000000001740002573174000761736461647361780074001f64796e616d69634a6f624265616e31353331353930343132333035686f6d657800 at org.postgresql.jdbc.PgResultSet.toLong(PgResultSet.java:2861) ~[postgresql-9.4.1212.jre7.jar:9.4.1212.jre7] at org.postgresql.jdbc.PgResultSet.getLong(PgResultSet.java:2072) ~[postgresql-9.4.1212.jre7.jar:9.4.1212.jre7] at org.postgresql.jdbc.PgResultSet.getBlob(PgResultSet.java:420) ~[postgresql-9.4.1212.jre7.jar:9.4.1212.jre7] at org.postgresql.jdbc.PgResultSet.getBlob(PgResultSet.java:407) ~[postgresql-9.4.1212.jre7.jar:9.4.1212.jre7] at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.getObjectFromBlob(StdJDBCDelegate.java:3190) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.StdJDBCDelegate.selectTrigger(StdJDBCDelegate.java:1780) ~[quartz-2.2.1.jar:na] at org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveTrigger(JobStoreSupport.java:1531) ~[quartz-2.2.1.jar:na] ... 27 common frames omitted

Process finished with exit code 1&lt;/pre&gt;



&lt;p&gt;=&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/365821/spring-quartz-i-postressql</guid>
<pubDate>Sat, 14 Jul 2018 18:50:34 +0000</pubDate>
</item>
<item>
<title>Spring Quartz</title>
<link>https://forum.pasja-informatyki.pl/365569/spring-quartz</link>
<description>

&lt;p&gt;Witam. Chciałbym nauczyć się Spring Squartz. Czytam sobie dokumentacje. Zrobiłem mały projekt który ma polegać&amp;nbsp; na tym że po przejściu pod adres localhost:8080/ będą w konsoli wyświetlały się ciągle wiadomości o określonym czasie.&amp;nbsp;Jednak nie wiem dlaczego program mi nie działa. Link do gita i programu pod spodem.&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
2018-07-13 11:43:38.432 ERROR 7644 --- [eduler_Worker-1] org.quartz.core.ErrorLogger              : Job (group1.job1 threw an exception.

org.quartz.SchedulerException: Job threw an unhandled exception.
	at org.quartz.core.JobRunShell.run(JobRunShell.java:213) ~[quartz-2.2.1.jar:na]
	at org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:573) [quartz-2.2.1.jar:na]
Caused by: java.lang.NullPointerException: null
	at pl.xentivo.app2work.quarz.job.EmailJob.execute(EmailJob.java:20) ~[classes/:na]
	at org.quartz.core.JobRunShell.run(JobRunShell.java:202) ~[quartz-2.2.1.jar:na]
	... 1 common frames omitted&lt;/pre&gt;



&lt;p&gt;&lt;a href=&quot;https://github.com/Redzikes/spring-shedure&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Redzikes/spring-shedure&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;http://www.quartz-scheduler.org/documentation/quartz-2.x/quick-start.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;http://www.quartz-scheduler.org/documentation/quartz-2.x/quick-start.html&lt;/a&gt;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/365569/spring-quartz</guid>
<pubDate>Fri, 13 Jul 2018 09:47:17 +0000</pubDate>
</item>
<item>
<title>Spring boot security zabezpieczenie przed modyfikacją</title>
<link>https://forum.pasja-informatyki.pl/342266/spring-boot-security-zabezpieczenie-przed-modyfikacja</link>
<description>

&lt;p&gt;Mam projekt w Spring boot z MVC, security i&amp;nbsp;Thymeleaf, gdzie można zarejestrować użytkownika. Nie wiem jak dobrze rozwiązać kwestę zabezpieczenia API, w ten sposób, że zalogowany użytkownik nie będzie mógł wyświetlić/usunąć zawartość innego użytkownika zgadując id&amp;nbsp; wpisując sobie z palca url. np. do takiego url&amp;nbsp;/user/{userName}/notebook/{articleId}/delete
&lt;br&gt;
Wiem, że nie jest to do końca poprawne API, ale jakoś wygodniej jest używać geta niż np. PUT (mogę zastosować ten sam formularz) w web app. Próbowałem stosować:&lt;/p&gt;



&lt;pre&gt;
@PreAuthorize(&quot;#userName == authentication.name&quot;)
@GetMapping(&quot;/user/{userName}/notebook/{id}/delete&quot;)&lt;/pre&gt;



&lt;p&gt;Jednak i tak wymaga to sprawdzenie w serwisie lub repository czy&amp;nbsp;dany nootebook należy do zalogowanego użytkownika. Gorzej wygląda to jak mamy taką hierarchię user → notebook → article. Czy istnieje jakiś prostszy sposób albo ja coś źle robię?&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Omawiany projekt na githubie, jednak ciągle coś zmieniam więc może to trochę inaczej wyglądać.&amp;nbsp;&lt;a href=&quot;https://github.com/amiroslaw/languide&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/amiroslaw/languide&lt;/a&gt;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/342266/spring-boot-security-zabezpieczenie-przed-modyfikacja</guid>
<pubDate>Tue, 10 Apr 2018 19:26:24 +0000</pubDate>
</item>
<item>
<title>Spring mvc walidacja</title>
<link>https://forum.pasja-informatyki.pl/337733/spring-mvc-walidacja</link>
<description>

&lt;p&gt;Dlaczego po walidacji nie dostaje błędu w polu email? Mam adnotacje @NotEmpty i @Email&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
&amp;lt;form action=&quot;#&quot; method=&quot;post&quot; th:action=&quot;@{/register}&quot; th:object=&quot;${user}&quot;&amp;gt;

    &amp;lt;p th:if=&quot;${#fields.hasErrors('username')}&quot; th:errors=&quot;*{username}&quot; &amp;gt;error&amp;lt;/p&amp;gt;
    &amp;lt;p&amp;gt;Username: &amp;lt;input type=&quot;text&quot; th:field=&quot;*{username}&quot;/&amp;gt;&amp;lt;/p&amp;gt;

    &amp;lt;p th:if=&quot;${#fields.hasErrors('password')}&quot; th:errors=&quot;*{password}&quot;&amp;gt;error&amp;lt;/p&amp;gt;
    &amp;lt;p&amp;gt;Password: &amp;lt;input type=&quot;password&quot; th:field=&quot;*{password}&quot;/&amp;gt;&amp;lt;/p&amp;gt;

    &amp;lt;p th:if=&quot;${#fields.hasErrors('userDetails.email')}&quot; th:errors=&quot;*{userDetails.email}&quot;&amp;gt;error&amp;lt;/p&amp;gt;
    &amp;lt;p&amp;gt;Email: &amp;lt;input type=&quot;email&quot; th:field=&quot;*{userDetails.email}&quot;/&amp;gt;&amp;lt;/p&amp;gt;

    &amp;lt;p&amp;gt;First Name: &amp;lt;input type=&quot;text&quot; th:field=&quot;*{userDetails.firstName}&quot;/&amp;gt;&amp;lt;/p&amp;gt;
    &amp;lt;p&amp;gt;Last Name: &amp;lt;input type=&quot;text&quot; th:field=&quot;*{userDetails.lastName}&quot;/&amp;gt;&amp;lt;/p&amp;gt;
    &amp;lt;br&amp;gt;
    &amp;lt;input type=&quot;submit&quot; value=&quot;Register&quot;&amp;gt;
&amp;lt;/form&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
@PostMapping(&quot;/register&quot;)
    public String addNewUser(@Valid @ModelAttribute User user, BindingResult result) {
        if (result.hasErrors()) {
            List&amp;lt;ObjectError&amp;gt; errors = result.getAllErrors();
            errors.forEach(err -&amp;gt; System.err.println(&quot;ERROR: &quot; + err.getDefaultMessage()));
            return &quot;register&quot;;
        } else {
            return &quot;home&quot;;
        }
    }&lt;/pre&gt;



&lt;p&gt;&lt;a href=&quot;https://i.imgur.com/pz1GT2d.png&quot; rel=&quot;nofollow&quot;&gt;https://i.imgur.com/pz1GT2d.png&lt;/a&gt;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/337733/spring-mvc-walidacja</guid>
<pubDate>Mon, 26 Mar 2018 13:41:59 +0000</pubDate>
</item>
<item>
<title>Ocena małego projektu aplikacji webowej napisanej w Java + Spring</title>
<link>https://forum.pasja-informatyki.pl/335415/ocena-malego-projektu-aplikacji-webowej-napisanej-w-java-spring</link>
<description>

&lt;p&gt;Witam
&lt;br&gt;
Proszę o ocenę kodu mojego małego projektu forum internetowego. Projekt był napisany od zera jako projekt na informatykę. Po czasie widzę, że spora część rozwiązań była niedopracowana i wiem jak je poprawić. Projekt nie jest w pełni skończony, ale uznałem, że tylko REST i nie chcę się pchać w TML&amp;nbsp;¯\_(ツ)_/¯. Wybaczcie, że jest też on po angielsku, ale chciałem sobie przypomnieć trochę języka.&lt;/p&gt;



&lt;p&gt;Użyte technologie: Java, Spring, Spring Security, Thymeleaf, Hibernate, MySQL oraz Mockito do kilku testów.&lt;/p&gt;



&lt;p&gt;Oczywiście wiem, że frontend leży, ale nie jest to moje zainteresowanie i wolałbym o ocenę wyłącznie backendu.&amp;nbsp;&lt;/p&gt;



&lt;p&gt;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/xenonso/ITForum&quot;&gt;Link do GitHub&lt;/a&gt;&lt;/p&gt;</description>
<category>Nasze projekty</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/335415/ocena-malego-projektu-aplikacji-webowej-napisanej-w-java-spring</guid>
<pubDate>Sat, 17 Mar 2018 17:34:33 +0000</pubDate>
</item>
<item>
<title>Dobry i nowy tutorial ze Spring boot</title>
<link>https://forum.pasja-informatyki.pl/332421/dobry-i-nowy-tutorial-ze-spring-boot</link>
<description>Hej, wiem, że to forum skupione jest bardziej na sprawach z dziedziny front-end, ale może ktoś będzie coś wiedział :) Ostatnio zainteresowałem się Spring Boot'em, ale nauka z książki ciężko mi idzie, ponadto książka ma już swoje lata i zauważyłem, że wiele rzeczy jest nieaktualnych. Czy znacie może jakieś tutoriale gdzie ktoś robi jakąś aplikację z użyciem np: thymeleaf zamiast jsp, data-rest itp ?Chodzi mi przede wszystkim o to żeby był aktualny i poprowadził od początku do końca na jakiejś małej aplikacji.&lt;br /&gt;
&lt;br /&gt;
Z góry dzięki za pomoc.</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/332421/dobry-i-nowy-tutorial-ze-spring-boot</guid>
<pubDate>Tue, 06 Mar 2018 09:37:47 +0000</pubDate>
</item>
<item>
<title>Spring boot Thymeleaf i style css</title>
<link>https://forum.pasja-informatyki.pl/330930/spring-boot-thymeleaf-i-style-css</link>
<description>Witam mam problem z załadowaniem pliku css i zdjęc do aplikacji . Sciągam sobie darmowy szablon plik css wrzucam do resource/static/css/style.css a zdjecai do resource/static/images/(i tu zdjecie)&lt;br /&gt;
&lt;br /&gt;
Nastepnie w indexie podaje scieżke do styli i zdjec a mimo to ich nie łąduje i wyskakuje taki błąd:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://scr.hu/GXmyXZ&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://scr.hu/GXmyXZ&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
Projekt wrzucam na gita:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Redzikesxd/sklep&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Redzikesxd/sklep&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Redzikesxd/sklep&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Redzikesxd/sklep&lt;/a&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/330930/spring-boot-thymeleaf-i-style-css</guid>
<pubDate>Wed, 28 Feb 2018 17:48:24 +0000</pubDate>
</item>
<item>
<title>Spring, gradle, jpa, thymeleaf, walidacja pól zwraca błąd</title>
<link>https://forum.pasja-informatyki.pl/329076/spring-gradle-jpa-thymeleaf-walidacja-pol-zwraca-blad</link>
<description>

&lt;p&gt;Hej. Chcę dodać walidację do pól. Mam klasę domenową:
&lt;br&gt;

&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
@Entity
public class Dog {

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Long id;
    @NotNull
    @Size(min=2, max=30)
    private String name;&lt;/pre&gt;



&lt;p&gt;+ wiadomo gettery, settery.
&lt;br&gt;

&lt;br&gt;
Mam kontroler:
&lt;br&gt;

&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
@RequestMapping(value=&quot;/addDog&quot;, method = RequestMethod.GET)
    public String addDog(Model model) {

        model.addAttribute(&quot;newDog&quot;, new Dog());
        return &quot;adddog&quot;;
    }

    @RequestMapping(value=&quot;/addDog&quot;, method = RequestMethod.POST)
    public String saveDog(@ModelAttribute @Valid Dog newDog, BindingResult result) {

        if (result.hasErrors()) {
            return &quot;adddog&quot;;
        }else{
            dogService.addDog(newDog);
            return &quot;redirect:/success&quot;;
        }
    }&lt;/pre&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
@RequestMapping(value=&quot;/success&quot;, method = RequestMethod.GET)
    public String succes(Model model) {

        model.addAttribute(&quot;newDog&quot;, new Dog());
        model.addAttribute(&quot;msgAdded&quot;, &quot;Dodano nowego psa!&quot;);
        return &quot;adddog&quot;;
    }&lt;/pre&gt;



&lt;p&gt;No i mam stronę:
&lt;br&gt;

&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;html xmlns:th=&quot;http://www.thymeleaf.org&quot;&amp;gt;
&amp;lt;head&amp;gt;
&amp;lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=UTF-8&quot;/&amp;gt;
&amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css&quot;/&amp;gt;
&amp;lt;title&amp;gt;Psy&amp;lt;/title&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
	&amp;lt;nav class=&quot;navbar navbar-inverse&quot;&amp;gt;
  &amp;lt;div class=&quot;container-fluid&quot;&amp;gt;
    &amp;lt;div class=&quot;navbar-header&quot;&amp;gt;
      &amp;lt;a class=&quot;navbar-brand&quot; href=&quot;#&quot;&amp;gt;Moje psy&amp;lt;/a&amp;gt;
    &amp;lt;/div&amp;gt;
    &amp;lt;ul class=&quot;nav navbar-nav&quot;&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot; th:href=&quot;@{/}&quot;&amp;gt;Home&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li&amp;gt;&amp;lt;a href=&quot;#&quot; th:href=&quot;@{/dogs}&quot;&amp;gt;Lista psów&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
      &amp;lt;li class=&quot;active&quot;&amp;gt;&amp;lt;a href=&quot;#&quot; th:href=&quot;@{/addDog}&quot;&amp;gt;Dodaj psa&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;
    &amp;lt;ul class=&quot;nav navbar-nav navbar-right&quot;&amp;gt;
    &amp;lt;li&amp;gt;&amp;lt;form th:action=&quot;@{/logout}&quot; method=&quot;post&quot;&amp;gt;
        &amp;lt;input type=&quot;submit&quot; value=&quot;Wyloguj się&quot;/&amp;gt;
      &amp;lt;/form&amp;gt;
      &amp;lt;/li&amp;gt;
    &amp;lt;/ul&amp;gt;  
  &amp;lt;/div&amp;gt;
&amp;lt;/nav&amp;gt;
    &amp;lt;section class=&quot;container&quot;&amp;gt;
				&amp;lt;h1&amp;gt;Dodaj nowego psa&amp;lt;/h1&amp;gt;

            &amp;lt;form action=&quot;#&quot; th:action=&quot;@{/addDog}&quot; method=&quot;post&quot; th:object=&quot;${newDog}&quot;&amp;gt;
                &amp;lt;table&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;td&amp;gt;Imię psa:&amp;lt;/td&amp;gt;
                        &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; th:field=&quot;*{name}&quot;/&amp;gt;&amp;lt;/td&amp;gt;
                        &amp;lt;td th:if=&quot;${#fields.hasErrors('name')}&quot; th:errors=&quot;*{name}&quot;&amp;gt;Name Error&amp;lt;/td&amp;gt;
                    &amp;lt;/tr&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;td&amp;gt;Wiek psa:&amp;lt;/td&amp;gt;
                        &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; th:field=&quot;*{age}&quot; /&amp;gt;&amp;lt;/td&amp;gt;
                        &amp;lt;td th:if=&quot;${#fields.hasErrors('age')}&quot; th:errors=&quot;*{age}&quot;&amp;gt;Wiek błąd&amp;lt;/td&amp;gt;
                    &amp;lt;/tr&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;td&amp;gt;Imię właściciela:&amp;lt;/td&amp;gt;
                        &amp;lt;td&amp;gt;&amp;lt;input type=&quot;text&quot; th:field=&quot;*{ownersName}&quot; /&amp;gt;&amp;lt;/td&amp;gt;
                        &amp;lt;td th:if=&quot;${#fields.hasErrors('ownersName')}&quot; th:errors=&quot;*{ownersName}&quot;&amp;gt;Imię właściciela błąd&amp;lt;/td&amp;gt;
                    &amp;lt;/tr&amp;gt;
                    &amp;lt;tr&amp;gt;
                        &amp;lt;td&amp;gt;&amp;lt;button type=&quot;submit&quot;&amp;gt;Submit&amp;lt;/button&amp;gt;&amp;lt;/td&amp;gt;
                    &amp;lt;/tr&amp;gt;
                &amp;lt;/table&amp;gt;
            &amp;lt;/form&amp;gt;


				&amp;lt;p th:if=&quot;${msgAdded}&quot;&amp;gt;
				&amp;lt;div class=&quot;alert alert-success alert-dismissable&quot;&amp;gt;
				&amp;lt;a href=&quot;#&quot; class=&quot;close&quot; data-dismiss=&quot;alert&quot; aria-label=&quot;close&quot;&amp;gt;×&amp;lt;/a&amp;gt;
					&amp;lt;strong&amp;gt;&amp;lt;h1 th:text=&quot;${msgAdded}&quot;&amp;gt;&amp;lt;/h1&amp;gt;&amp;lt;/strong&amp;gt;
				&amp;lt;/div&amp;gt;
				&amp;lt;/p&amp;gt;
	&amp;lt;/section&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;



&lt;p&gt;Po wysłaniu formularza pojawia się błąd:&lt;/p&gt;



&lt;blockquote&gt;


&lt;p&gt;
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Whitelabel Error Page&lt;/p&gt;



&lt;p&gt;This application has no explicit mapping for /error, so you are seeing this as a fallback.&lt;/p&gt;



&lt;p&gt;Thu Feb 22 16:47:42 CET 2018&lt;/p&gt;



&lt;p&gt;There was an unexpected error (type=Internal Server Error, status=500).&lt;/p&gt;



&lt;p&gt;Error during execution of processor 'org.thymeleaf.spring4.processor.attr.SpringInputGeneralFieldAttrProcessor' (adddog:33)&lt;/p&gt;
&lt;/blockquote&gt;



&lt;p&gt;Siedzę nad tym drugi dzień i nie rozumiem, na czym polega błąd. Być może coś nie tak jest z polem ID?&amp;nbsp;
&lt;br&gt;

&lt;br&gt;
Nie rozumiem, jak działa&amp;nbsp;&amp;nbsp;&lt;/p&gt;



&lt;pre&gt;
BindingResult&lt;/pre&gt;



&lt;p&gt;Obiekt sprawdza poprawność pól po kliknięciu przycisku submit? Rozumiem, że polu ID przypisuje kolejną wolną wartość?
&lt;br&gt;

&lt;br&gt;
Do Gradle'a dodałem: compile group: 'org.hibernate.validator', name: 'hibernate-validator', version: '6.0.7.Final'
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/329076/spring-gradle-jpa-thymeleaf-walidacja-pol-zwraca-blad</guid>
<pubDate>Thu, 22 Feb 2018 15:50:15 +0000</pubDate>
</item>
<item>
<title>System wspierający przydzielanie studentów na wyjazdy zagraniczne.</title>
<link>https://forum.pasja-informatyki.pl/324231/system-wspierajacy-przydzielanie-studentow-na-wyjazdy-zagraniczne</link>
<description>

&lt;p&gt;Cześć,&lt;/p&gt;



&lt;p&gt;chcę napisać aplikację której głównym celem będzie:&lt;/p&gt;



&lt;ul&gt;
	

&lt;li&gt;obsługa zgłoszeń studentów na wyjazdy zagraniczne - formularz ze zdefiniowanymi polami&amp;nbsp;&lt;/li&gt;
	

&lt;li&gt;wyświetlanie danych w formie tabeli - studenci przyporządkowani do danej uczelni&lt;/li&gt;
	

&lt;li&gt;raportowania np listy studentów danego wydziału&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Zdaję sobie sprawę że to zbyt okrojony opis żeby podjąć decyzję co do wyboru bazy danych dla aplikacji ale zastanawiam się nad użyciem bazy MongoDB w tym projekcie. Dlaczego MongoDB&lt;/p&gt;



&lt;ul&gt;
	

&lt;li&gt;ponieważ docelowo chciałbym żeby aplikacja działała w architekturze mikroserwisowej.&lt;/li&gt;
&lt;/ul&gt;



&lt;p&gt;Jakie mam wątpliwości:&lt;/p&gt;



&lt;p&gt;Aplikacja ma mieć możliwość definiowania uczelni i ilości miejsc na niej dostępnych dla studentów. W odniesieniu do zdefiniowanej uczelni ma się generować lista studentów jaka się do niej zapisała np w nazwie kolumny będzie dana uczelnia + ilość miejsc dostępna na danej uczelni, pod spodem lista studentów którzy ją wybrali w formularzu. Rozumiem że w MongoDB zdefiniuję sobie dokument reprezentujący formularz studenta i dokument reprezentujący uczelnię. Każdy nowy dokument formularza będzie reprezentował formularz danego studenta. Każdy nowy dokument uczelni będzie reprezentował nową uczelnię. Jak w takim razie zrealizuję powiązanie studenta do uczelni? Wyobrażam sobie to tak że aplikacja będzie pobierała listę uczelni, które wyświetli w formie tabeli. Kolejnym krokiem będzie pobranie nazwy uczelni z tej listy i wyszukanie wszystkich studentów którzy się do niej zapisali. Pytanie czy to dobre podejście?&lt;/p&gt;



&lt;p&gt;Kolejnym aspektem jest skreślanie powielonych studentów z prezentowanej tabeli ponieważ student może wybrać trzy uczelnia a zostać przydzielony tylko do jednej. Z drugiej strony jeżeli w uczelni którą najbardziej preferuje nie będzie już miejsc może zostać przydzielony do uczelni której nadał niższy priorytet. Reasumując jeżeli na danej uczelni której student nadał najwyższy priorytet braknie miejsc ma zostać przydzielony do kolejnej której nadał niższy priorytet. We wszystkich kolumnach reprezentujących uczelnie ma być widoczny jako skreślony poza tą w której został przydzielony. Nie wiem jak rozwiązać taki problem? Wydaje mi się że potrzebuję kolejnego dokumentu w którym będę przechowywał informację o przypisaniu danego studenta do uczelni i na jego podstawie będę dokonywał przypisania według priorytetów. Jak myślicie?
&lt;br&gt;
&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Z góry dziękuję za każda odpowiedź.&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/324231/system-wspierajacy-przydzielanie-studentow-na-wyjazdy-zagraniczne</guid>
<pubDate>Mon, 05 Feb 2018 14:33:25 +0000</pubDate>
</item>
<item>
<title>Spring + Thymeleaf + Bootstrap nie działa kod html</title>
<link>https://forum.pasja-informatyki.pl/320710/spring-thymeleaf-bootstrap-nie-dziala-kod-html</link>
<description>Hej.&lt;br /&gt;
&lt;br /&gt;
Staram się zrobić mały projekt tj. schronisko. Żeby to ładnie wyglądało, postanowiłem udekorować strony html i dodać do nich życia. Póki co mam takie coś:&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://paste.ofcode.org/39rjL9se3r2aREpjaDBNBY3&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://paste.ofcode.org/39rjL9se3r2aREpjaDBNBY3&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Nie ma tu nic nadzwyczajnego - zwykłe inputy i strony z tekstem na białym tle. Obejrzałem kilka filmów Mirosława i dodałem zegar w JS oraz kilka zdjęć i zmieniłem kolor tła tylko że... nic z tego nie działa!&lt;br /&gt;
&lt;br /&gt;
W projekcie korzystam z: JPA, Thymeleaf, Bootstrap, mysql. Czegoś nie dodałem? Wszelkie sugestie mile widziane.</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/320710/spring-thymeleaf-bootstrap-nie-dziala-kod-html</guid>
<pubDate>Mon, 22 Jan 2018 23:29:49 +0000</pubDate>
</item>
<item>
<title>Java, Spring, odniesienie się do zmiennej w pliku HTML przez Thymeleaf</title>
<link>https://forum.pasja-informatyki.pl/318860/java-spring-odniesienie-sie-do-zmiennej-w-pliku-html-przez-thymeleaf</link>
<description>Mam pewien problem. Mam klasę, która jest kontrolerem i wygląda tak:&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://paste.ofcode.org/33hBWU6uHMavpBgkH8qsGUD&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://paste.ofcode.org/33hBWU6uHMavpBgkH8qsGUD&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;
W pliku index.html nie mogę odnieść się do zmiennej modelu &amp;quot;message&amp;quot;. Dlaczego?&lt;br /&gt;
&lt;br /&gt;
PS&lt;br /&gt;
Przepraszam za spam. W chwili, kiedy spojrzałem na kod po wysłaniu posta, doszedłem do wniosku, że to przez &amp;quot;redirect:/&amp;quot;. Zamieniłem to na return &amp;quot;index&amp;quot; i działa.</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/318860/java-spring-odniesienie-sie-do-zmiennej-w-pliku-html-przez-thymeleaf</guid>
<pubDate>Mon, 15 Jan 2018 19:27:42 +0000</pubDate>
</item>
<item>
<title>Plik css i spring boot</title>
<link>https://forum.pasja-informatyki.pl/317598/plik-css-i-spring-boot</link>
<description>

&lt;p&gt;Witam. Napisałem swoją małą aplikacje w javie . Zrobiłem to za pomoca Spring boota i technologi Spring Data,Spring MVC i szablonów html.
&lt;br&gt;
I mam mały problem &amp;nbsp;z plikiem css . A mianowicie moja aplikacja nie chce mi go załadować .Aplikacja się odpala wszystko działa jak trzeba ale nie nie ma odpowiedniego wyglądu taki jaki ustaliłem w pliku css . Jak to naprawić ?
&lt;br&gt;
Tu podrzucam link:&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;https://scr.hu/Zamyz1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;https://scr.hu/Zamyz1&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;A tu link do mojej aplikacji&lt;/p&gt;



&lt;p&gt;&lt;a href=&quot;http://www45.zippyshare.com/v/nH3hZI9h/file.html&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot; title=&quot;&quot;&gt;http://www45.zippyshare.com/v/nH3hZI9h/file.html&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Ktoś pomoże daje naj :)&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/317598/plik-css-i-spring-boot</guid>
<pubDate>Wed, 10 Jan 2018 21:25:51 +0000</pubDate>
</item>
<item>
<title>Spring boot i plik csss</title>
<link>https://forum.pasja-informatyki.pl/317481/spring-boot-i-plik-csss</link>
<description>Witam. Napisałem swoją małą aplikacje w javie . Zrobiłem to za pomoca Spring boota i technologi Spring Data,Spring MVC i szablonów html.&lt;br /&gt;
I mam mały problem &amp;nbsp;z plikiem css . A mianowicie moja aplikacja nie chce mi go załadować .Aplikacja się odpala wszystko działa jak trzeba ale nie nie ma odpowiedniego wyglądu taki jaki ustaliłem w pliku css . Jak to naprawić ?&lt;br /&gt;
Tu podrzucam link:&lt;br /&gt;
&lt;a href=&quot;https://scr.hu/Zamyz1&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://scr.hu/Zamyz1&lt;/a&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/317481/spring-boot-i-plik-csss</guid>
<pubDate>Wed, 10 Jan 2018 16:44:29 +0000</pubDate>
</item>
<item>
<title>Dynamiczne pola Thymeleaf brak reakcji na dodanie kolejnego inputa. SPRING JAVA</title>
<link>https://forum.pasja-informatyki.pl/300484/dynamiczne-pola-thymeleaf-brak-reakcji-na-dodanie-kolejnego-inputa-spring-java</link>
<description>

&lt;p&gt;Witam potrzebne mi są dynamiczne pola do tego zadania używam Thymeleaf.&lt;/p&gt;



&lt;p&gt;Oto mój kod&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
    @RequestMapping(value = &quot;/add_equipment&quot;, params = {&quot;save&quot;}, method = RequestMethod.POST)
    public String saveEquipments(@Valid EquipmentForm equipmentForm, BindingResult bindingResult) {

        if (bindingResult.hasErrors()) {
            return &quot;redirect:/&quot;;
        }

        System.out.println(equipmentForm.getEquipments());
        return &quot;redirect:/system/add_equipment&quot;;
    }

    @RequestMapping(value = &quot;/add_equipment&quot;, params = {&quot;addEquipment&quot;})
    public String addRow(EquipmentForm equipmentForm) {
        equipmentForm.getEquipments().add(null);
        return &quot;logistics/my_logistic/add_equipment&quot;;
    }

    @RequestMapping(value = &quot;/add_equipment&quot;, params = {&quot;removeEquipment&quot;})
    public String removeEquipment(EquipmentForm equipmentForm, HttpServletRequest req) {

        Integer rowId = Integer.valueOf(req.getParameter(&quot;removeEquipment&quot;));
        equipmentForm.getEquipments().remove(rowId.intValue());
        return &quot;logistics/my_logistic/add_equipment&quot;;
    }&lt;/pre&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
@Component
public class EquipmentForm {

    private List&amp;lt;String&amp;gt; equipments = new ArrayList&amp;lt;&amp;gt;();

    public List&amp;lt;String&amp;gt; getEquipments() {
        return equipments;
    }

    public void setEquipments(List&amp;lt;String&amp;gt; equipments) {
        this.equipments = equipments;
    }

    @Override
    public String toString() {
        return &quot;EquipmentForm{&quot; +
                &quot;equipments=&quot; + equipments +
                '}';
    }
}&lt;/pre&gt;



&lt;p&gt;html&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;

        &amp;lt;form action=&quot;#&quot; method=&quot;post&quot; th:action=&quot;@{/system/add_equipment}&quot;&amp;gt;

            &amp;lt;fieldset class=&quot;row&quot;&amp;gt;
                &amp;lt;legend&amp;gt;What do you like?&amp;lt;/legend&amp;gt;
                &amp;lt;button class=&quot;btn teal&quot; type=&quot;submit&quot; name=&quot;addEquipment&quot;&amp;gt;Add equipment
                    &amp;lt;i class=&quot;mdi-content-add left&quot;&amp;gt;&amp;lt;/i&amp;gt;
                &amp;lt;/button&amp;gt;

                &amp;lt;div class=&quot;row&quot; th:each=&quot;row,rowStat : *{equipments}&quot;&amp;gt;
                    &amp;lt;div class=&quot;col s6&quot;&amp;gt;
                        &amp;lt;input type=&quot;text&quot; th:field=&quot;*{equipments[__${rowStat.index}__]}&quot;/&amp;gt;
                    &amp;lt;/div&amp;gt;

                    &amp;lt;div class=&quot;col s6&quot;&amp;gt;
                        &amp;lt;button class=&quot;btn red&quot; type=&quot;submit&quot; name=&quot;removeTaste&quot; th:value=&quot;${rowStat.index}&quot;&amp;gt;Remove
                            &amp;lt;i class=&quot;mdi-action-delete right waves-effect&quot;&amp;gt;&amp;lt;/i&amp;gt;
                        &amp;lt;/button&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/fieldset&amp;gt;


            &amp;lt;div class=&quot;row&quot; style=&quot;margin-top: 40px&quot;&amp;gt;
                &amp;lt;button class=&quot;btn indigo waves-effect waves-light&quot; type=&quot;submit&quot; name=&quot;save&quot;&amp;gt;Submit
                    &amp;lt;i class=&quot;mdi-content-send right&quot;&amp;gt;&amp;lt;/i&amp;gt;
                &amp;lt;/button&amp;gt;
            &amp;lt;/div&amp;gt;
        &amp;lt;/form&amp;gt;&lt;/pre&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Na ekranie nie ma żadnego inputa są tylko dwa przyciski by dodać nowy oraz wyslać formularz.&lt;/p&gt;



&lt;p&gt;Po naciśnięciu przycisku, który powinien dodać kolejny input nic się nie dzieje. ps widziałem dokumentacje thymeleaf na ten temat. Pozdrawiam.&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/300484/dynamiczne-pola-thymeleaf-brak-reakcji-na-dodanie-kolejnego-inputa-spring-java</guid>
<pubDate>Sun, 05 Nov 2017 18:16:21 +0000</pubDate>
</item>
<item>
<title>Internacjonalizacja w projekcie Spring</title>
<link>https://forum.pasja-informatyki.pl/268061/internacjonalizacja-w-projekcie-spring</link>
<description>Tworzę internacjonalizację dla mojej aplikacji i zastanawiam się, czy można stworzyć kilka plików do tworzenia przetłumaczonych wiadomości. Wydaje mi się, że nie da rady, ale wolę spytać.&lt;br /&gt;
&lt;br /&gt;
Chodzi o to, że mam plik 'messages.properties' w którym mam już trochę tekstu&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://pastebin.com/WdyE0Aaj&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://pastebin.com/WdyE0Aaj&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
a to dopiero początek. Co będzie jeśli będę posiała kilkadziesiąt stron i dla każdej strony będę musiał zadeklarować tutaj tłumaczenie. Przecież ten plik będzie się ciągnął w setki, a potem w tysiące. Czy można to jakoś podzielić na więcej plików?</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/268061/internacjonalizacja-w-projekcie-spring</guid>
<pubDate>Sat, 08 Jul 2017 20:55:08 +0000</pubDate>
</item>
<item>
<title>spring boot nullpointerexception brak css</title>
<link>https://forum.pasja-informatyki.pl/264975/spring-boot-nullpointerexception-brak-css</link>
<description>Dzień dobry,&lt;br /&gt;
&lt;br /&gt;
Mam następujący problem z aplikacją (link do repo: &lt;a href=&quot;https://github.com/JaroslawSlaby/spring-application&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/JaroslawSlaby/spring-application&lt;/a&gt; ): w trakcie uruchamiania rzuca wyjątkiem NullPointerException przy wykonaniu metody getLoggedInUser. Dodatkowo nie wczytuje plików css. Co może być przyczyną? Czy tego typu nullpointerexception może spowodować brak ładowania css'ów?</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/264975/spring-boot-nullpointerexception-brak-css</guid>
<pubDate>Mon, 26 Jun 2017 18:33:32 +0000</pubDate>
</item>
<item>
<title>Odniesienie do sesji w pliku html</title>
<link>https://forum.pasja-informatyki.pl/262040/odniesienie-do-sesji-w-pliku-html</link>
<description>

&lt;p&gt;Piszę pewny projekt w Springu i mam pewien problem. Otóż moja stara wersja aplikacji zakładała przetrzymywanie sesji użytkownika w obiekcie HttpSession, przez co mogłem w pliku html odwołać się do takiego obiektu poprzez&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
session.user.username&lt;/pre&gt;



&lt;p&gt;bez dodawania obiektu użytkownika na model. Jednak postanowiłem trochę przebudować mój program i stworzyć dla zalogowanego użytkownika całkiem nowy bean sesyjny UserSession oznaczony adnotacją&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
@Scope(value = &quot;session&quot;, proxyMode = ScopedProxyMode.TARGET_CLASS)&lt;/pre&gt;



&lt;p&gt;ale nie daje to mi możliwości odwoływania się do do tego obiektu sesyjnego, jak podczas gdybym dodał go do 'HttpSession'. Jest to trochę w tym momencie uciążliwe, bo musiałbym tego beany sesyjnego wrzucić na model w wielu kontrolerach co bardzo nie chciałbym.&lt;/p&gt;



&lt;p&gt;Czy jest możliwość, aby odnieść się do beana sesyjnego bez jego pośredniego dodawania na model? Chciałbym to robić tak bezpośrednio np. poprzez 'session' i tyle. Albo jest może jakiś inny sposób o którym nie wiem na taki bean sesyjny?&lt;/p&gt;



&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/262040/odniesienie-do-sesji-w-pliku-html</guid>
<pubDate>Tue, 13 Jun 2017 20:49:37 +0000</pubDate>
</item>
<item>
<title>Załączanie zewnętrznych plików JavaScript do Thymeleaf w projekcie webowym w Spring</title>
<link>https://forum.pasja-informatyki.pl/256106/zalaczanie-zewnetrznych-plikow-javascript-do-thymeleaf-projekcie-webowym-spring</link>
<description>

&lt;p&gt;Tworzę projekt w Spring&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;https://github.com/JonkiPro/Movie-Database-with-Social-Network&quot;&gt;https://github.com/JonkiPro/Movie-Database-with-Social-Network&lt;/a&gt;&amp;nbsp;i od dawna zmagam się z problemem nie działających plików JavaScript załączonych do strony&amp;nbsp;HTML. Tworzyłem już mnóstwo postów tutaj na forum, na 4programmers, czy na StackOverflow, podając zazwyczaj jakieś fragmenty kodu, lecz do tej pory nie uporałem się z tym problem, co jest bardzo uwłaczające, ponieważ przez ten nie działający JavaScript brakuje mi w projekcie wielu ciekawych funkcji. Jak już wspomniałem zawsze gdy tworzyłem wątki z moim problem, to dawałem tylko część kodu, ale to nie pomagało, więc mam taką prośbę czy mógłby ktoś zaznajomiony zajrzeć do mojego projektu na github i zobaczyć gdzie może leżeć problem? Może wystarczy coś dodać w konfiguracji? Nie mam pojęcia.&lt;/p&gt;</description>
<category>C i C++</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/256106/zalaczanie-zewnetrznych-plikow-javascript-do-thymeleaf-projekcie-webowym-spring</guid>
<pubDate>Tue, 23 May 2017 15:17:59 +0000</pubDate>
</item>
<item>
<title>Walidowanie tekstu podanego przez użytkownika</title>
<link>https://forum.pasja-informatyki.pl/252621/walidowanie-tekstu-podanego-przez-uzytkownika</link>
<description>

&lt;p&gt;Piszę serwis w Spring i natknąłem się na problem. Gdy użytkownik poda w polu tekstowym typu 'input' jakiś specjalny znak np. '/', to w kontrolerze próbuje wywołać np. adres&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
http://localhost:8080/messages/sentMessages?search=jonki\&lt;/pre&gt;



&lt;p&gt;i przez to wywala mi błąd. Tutaj na tym forum takie specjalne znaki zastępowane są specjalnym ciągiem&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
https://forum.pasja-informatyki.pl/search?q=jonki%5C&lt;/pre&gt;



&lt;p&gt;Chodzi o&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
%5C&lt;/pre&gt;



&lt;p&gt;które zastąpiło&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
/&lt;/pre&gt;



&lt;p&gt;Jak takie coś się robi?&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/252621/walidowanie-tekstu-podanego-przez-uzytkownika</guid>
<pubDate>Wed, 10 May 2017 20:45:44 +0000</pubDate>
</item>
<item>
<title>Spring i Gradle - dodawanie zależności od WebJars Boostrap</title>
<link>https://forum.pasja-informatyki.pl/251035/spring-i-gradle-dodawanie-zaleznosci-od-webjars-boostrap</link>
<description>

&lt;p&gt;Chciałbym w projekcie użyć webjars bootstrap. Problem polega na tym, że serwis &quot;chyba&quot; nie widzi plików webjars.&lt;/p&gt;



&lt;p&gt;Dodaję zależność do Gradle&lt;/p&gt;



&lt;pre class=&quot;brush:groovy;&quot;&gt;
compile group: 'org.webjars', name: 'bootstrap', version: '4.0.0-alpha.6-1&lt;/pre&gt;



&lt;p&gt;Następnie mapuję źródełko&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
 registry
            .addResourceHandler(&quot;/webjars/**&quot;)
            .addResourceLocations(&quot;/webjars/&quot;);&lt;/pre&gt;



&lt;p&gt;I na końcu dodaję potrzebny plik na stronę&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;link rel=&quot;stylesheet&quot; th:href=&quot;@{webjars/bootstrap/4.0.0-alpha.6-1/css/bootstrap.min.css}&quot;&amp;gt;&lt;/pre&gt;



&lt;p&gt;Wspomnę, że korzystam z Thymeleaf. I jest lipa. Nie ma żadnego efektu. Tak jakby nie widziało tego pliku. Od czego to może zależeć? Używam np. Spring Security, ale to chyba nie ma żadnego wpływu. I czy warto męczyć się z naprawieniem tego? Jaka jest szybkość pomiędzy plikiem z webjars, a takim zwykłem plikiem css, który nie jest z biblioteki ale z folderu 'resource'?&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/251035/spring-i-gradle-dodawanie-zaleznosci-od-webjars-boostrap</guid>
<pubDate>Sat, 06 May 2017 14:19:58 +0000</pubDate>
</item>
<item>
<title>Thymeleaf - plik lokalny jako zdjęcie</title>
<link>https://forum.pasja-informatyki.pl/249532/thymeleaf-plik-lokalny-jako-zdjecie</link>
<description>

&lt;p&gt;Mam na komputerze przykładowy obrazek&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
C:\Users\Jonatan\avatar\Koala.jpg&lt;/pre&gt;



&lt;p&gt;chcę go dodać na stronę HTML jako obrazek. Używam Thymeleaf więc chcę to zrobić w taki sposób&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;img id=&quot;avatar&quot; th:src=&quot;@{session.user.getUrlAvatar()}&quot;
                                     class=&quot;avatar img-circle img-thumbnail&quot; alt=&quot;avatar&quot;&amp;gt;&lt;/pre&gt;



&lt;p&gt;W tej sesji użykownika mam własnie całkowity adres, ten sam co powyżej. Po skompilowaniu niestety wyrzuca błąd&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
org.thymeleaf.exceptions.TemplateProcessingException: Could not parse as expression: &quot;@{session.user.getUrlAvatar()}&quot;&lt;/pre&gt;



&lt;p&gt;próbowałem zarejestrować ten folder&lt;/p&gt;



&lt;pre class=&quot;brush:java;&quot;&gt;
registry
                .addResourceHandler(&quot;/avatar/**&quot;)
                .addResourceLocations(&quot;file:///&quot; + System.getProperty(&quot;user.home&quot;).replace(&quot;\\&quot;, &quot;/&quot;));&lt;/pre&gt;



&lt;p&gt;ale dalej nie działa.&lt;/p&gt;



&lt;p&gt;Wie ktoś jak to zrobić? Chcę po prostu użyć lokalnego pliku z dysku C.&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/249532/thymeleaf-plik-lokalny-jako-zdjecie</guid>
<pubDate>Mon, 01 May 2017 02:02:23 +0000</pubDate>
</item>
<item>
<title>Menu nie rozwija się oraz problem z tłumaczeniami [JAVA]  [SPRING] [MATERIALIZECSS]</title>
<link>https://forum.pasja-informatyki.pl/247474/menu-nie-rozwija-sie-oraz-problem-z-tlumaczeniami-java-spring-materializecss</link>
<description>Witam ;)&lt;br /&gt;
&lt;br /&gt;
1.Po dodaniu th:text{#&amp;quot; &amp;quot;} do pól w formularzu, przyciskach, nagłówka tłumaczenia przestały być wyświetlane, zamiast docelowego &amp;quot;Informacje osobiste&amp;quot; jest ??profile.title_pl??.&lt;br /&gt;
&lt;br /&gt;
2. U góry po prawej mam przycisk z rozwijaną listą do zmiany języka niestety nie rozwija się. Na moje oko wygląda wszystko ok. Ale widać mylę się bo nie działa :D&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;https://github.com/Baron762/Social&quot; rel=&quot;nofollow&quot; target=&quot;_blank&quot;&gt;https://github.com/Baron762/Social&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
Pozdrawiam ;)</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/247474/menu-nie-rozwija-sie-oraz-problem-z-tlumaczeniami-java-spring-materializecss</guid>
<pubDate>Sun, 23 Apr 2017 19:57:03 +0000</pubDate>
</item>
<item>
<title>Używanie w pliku .html bezpośrednio danych z sesji czy np. poprzez model</title>
<link>https://forum.pasja-informatyki.pl/246360/uzywanie-w-pliku-html-bezposrednio-danych-z-sesji-czy-np-poprzez-model</link>
<description>

&lt;p&gt;Chodzi o to co lepiej wygląda i co jest szybsze. Np. podczas gdy chcę wyświetlić stronę do edycji profilu&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;en&quot; xmlns:th=&quot;http://www.thymeleaf.org&quot; xmlns:if=&quot;http://www.thymeleaf.org&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;utf-8&quot;&amp;gt;
    &amp;lt;meta http-equiv=&quot;X-UA-Compatible&quot; content=&quot;IE=edge&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1&quot;&amp;gt;

    &amp;lt;title&amp;gt;My application!&amp;lt;/title&amp;gt;

    &amp;lt;meta name=&quot;description&quot; content=&quot;My first application in Spring MVC&quot;&amp;gt;
    &amp;lt;meta name=&quot;author&quot; content=&quot;Jonki!&quot;&amp;gt;

    &amp;lt;link rel=&quot;stylesheet&quot; th:href=&quot;@{/resources/bootstrap/css/bootstrap.min.css}&quot;/&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; th:href=&quot;@{/resources/bootstrap/css/navbar.css}&quot;/&amp;gt;
    &amp;lt;script th:src=&quot;@{/resources/bootstrap/js/bootstrap.min.js}&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script th:src=&quot;@{/resources/bootstrap/js/jquery.min.js}&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script th:src=&quot;@{/resources/bootstrap/js/scripts.js}&quot;&amp;gt;&amp;lt;/script&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;
&amp;lt;div class=&quot;container-fluid&quot;&amp;gt;
    &amp;lt;div class=&quot;row&quot;&amp;gt;
        &amp;lt;div class=&quot;col-md-12&quot;&amp;gt;

            &amp;lt;div data-th-replace=&quot;/include/navbar::navbar&quot; th:with=&quot;loginStatus=${loginStatus}&quot;&amp;gt;&amp;lt;/div&amp;gt;

            &amp;lt;div class=&quot;container&quot; style=&quot;padding-top: 60px;&quot;&amp;gt;
                &amp;lt;h1 class=&quot;page-header&quot;&amp;gt;Edit Profile&amp;lt;/h1&amp;gt;
                &amp;lt;div class=&quot;row&quot;&amp;gt;
                    &amp;lt;th:block th:if=&quot;${invalidData}&quot;&amp;gt;
                        &amp;lt;div class=&quot;alert alert-dismissable alert-danger&quot;&amp;gt;

                            &amp;lt;button type=&quot;button&quot; class=&quot;close&quot; data-dismiss=&quot;alert&quot; aria-hidden=&quot;true&quot;&amp;gt;
                                ×
                            &amp;lt;/button&amp;gt;
                            &amp;lt;h4&amp;gt;
                                Error!
                            &amp;lt;/h4&amp;gt; &amp;lt;strong&amp;gt;Error!&amp;lt;/strong&amp;gt; Only letters and numbers!
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/th:block&amp;gt;
                    &amp;lt;th:block th:if=&quot;${successData}&quot;&amp;gt;
                        &amp;lt;div class=&quot;alert alert-dismissable alert-success&quot;&amp;gt;

                            &amp;lt;button type=&quot;button&quot; class=&quot;close&quot; data-dismiss=&quot;alert&quot; aria-hidden=&quot;true&quot;&amp;gt;
                                ×
                            &amp;lt;/button&amp;gt;
                            &amp;lt;h4&amp;gt;
                                Success!
                            &amp;lt;/h4&amp;gt; &amp;lt;strong&amp;gt;Success!&amp;lt;/strong&amp;gt; Data has been fixed!
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/th:block&amp;gt;
                    &amp;lt;!-- left column --&amp;gt;
                    &amp;lt;div class=&quot;col-md-4 col-sm-6 col-xs-12&quot;&amp;gt;
                        &amp;lt;div class=&quot;text-center&quot;&amp;gt;
                            &amp;lt;img src=&quot;##############&quot; class=&quot;avatar img-circle img-thumbnail&quot; alt=&quot;avatar&quot;&amp;gt;
                            &amp;lt;h6&amp;gt;Upload a different photo...&amp;lt;/h6&amp;gt;
                            &amp;lt;input type=&quot;file&quot; class=&quot;text-center center-block well well-sm&quot;&amp;gt;
                        &amp;lt;/div&amp;gt;
                    &amp;lt;/div&amp;gt;
                    &amp;lt;!-- edit form column --&amp;gt;
                    &amp;lt;div class=&quot;col-md-8 col-sm-6 col-xs-12 personal-info&quot;&amp;gt;
                        &amp;lt;h3&amp;gt;Personal info&amp;lt;/h3&amp;gt;
                        &amp;lt;form th:action=&quot;@{/user/settings/changeBasicData}&quot; th:object=&quot;${changeBasicDataDTO}&quot; method=&quot;POST&quot; class=&quot;form-horizontal&quot; role=&quot;form&quot;&amp;gt;
                            &amp;lt;div class=&quot;form-group&quot; th:classappend=&quot;${#fields.hasErrors('name') ? 'has-error' : null}&quot;&amp;gt;
                                &amp;lt;label class=&quot;col-lg-3 control-label&quot;&amp;gt;Name:&amp;lt;/label&amp;gt;
                                &amp;lt;div class=&quot;col-lg-8&quot;&amp;gt;
                                        &amp;lt;input th:name=&quot;name&quot; class=&quot;form-control&quot; type=&quot;text&quot; th:value=&quot;${session.user.name} != null ? ${session.user.name} : ''&quot; th:placeholder=&quot;(${session.user.name} == null or ${session.user.name.length() == 0}) ? 'Name' : ''&quot;&amp;gt;
                                &amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;form-group&quot; th:classappend=&quot;${#fields.hasErrors('secondName') ? 'has-error' : null}&quot;&amp;gt;
                                &amp;lt;label class=&quot;col-lg-3 control-label&quot;&amp;gt;Second name:&amp;lt;/label&amp;gt;
                                &amp;lt;div class=&quot;col-lg-8&quot;&amp;gt;
                                        &amp;lt;input th:name=&quot;secondName&quot; class=&quot;form-control&quot; type=&quot;text&quot; th:value=&quot;${session.user.secondName} != null ? ${session.user.secondName} : ''&quot; th:placeholder=&quot;(${session.user.secondName} == null or ${session.user.secondName.length() == 0}) ? 'Second name' : ''&quot;&amp;gt;
                                &amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;form-group&quot; th:classappend=&quot;${#fields.hasErrors('lastName') ? 'has-error' : null}&quot;&amp;gt;
                                &amp;lt;label class=&quot;col-lg-3 control-label&quot;&amp;gt;Last name:&amp;lt;/label&amp;gt;
                                &amp;lt;div class=&quot;col-lg-8&quot;&amp;gt;
                                        &amp;lt;input th:name=&quot;lastName&quot; class=&quot;form-control&quot; type=&quot;text&quot; th:value=&quot;${session.user.lastName} != null ? ${session.user.lastName} : ''&quot; th:placeholder=&quot;(${session.user.lastName} == null or ${session.user.lastName.length() == 0}) ? 'Last name' : ''&quot;&amp;gt;
                                &amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;form-group&quot;&amp;gt;
                                &amp;lt;label class=&quot;col-lg-3 control-label&quot;&amp;gt;Sex:&amp;lt;/label&amp;gt;
                                &amp;lt;div class=&quot;col-lg-8&quot;&amp;gt;
                                    &amp;lt;div class=&quot;ui-select&quot;&amp;gt;
                                        &amp;lt;select th:name=&quot;sex&quot; id=&quot;sex&quot; class=&quot;form-control&quot;&amp;gt;
                                            &amp;lt;th:block th:if=&quot;${session.user.sex} == null&quot;&amp;gt;
                                                &amp;lt;option value=&quot;&quot; disabled selected&amp;gt;Select your option&amp;lt;/option&amp;gt;
                                                &amp;lt;option th:name=&quot;male&quot; value=&quot;male&quot;&amp;gt;male&amp;lt;/option&amp;gt;
                                                &amp;lt;option th:name=&quot;female&quot; value=&quot;female&quot;&amp;gt;female&amp;lt;/option&amp;gt;
                                            &amp;lt;/th:block&amp;gt;
                                            &amp;lt;th:block th:unless=&quot;${session.user.sex} == null&quot;&amp;gt;
                                                &amp;lt;th:block th:if=&quot;${session.user.sex == 'male'}&quot;&amp;gt;
                                                    &amp;lt;option th:name=&quot;male&quot; value=&quot;male&quot; selected&amp;gt;male&amp;lt;/option&amp;gt;
                                                    &amp;lt;option th:name=&quot;female&quot; value=&quot;female&quot;&amp;gt;female&amp;lt;/option&amp;gt;
                                                &amp;lt;/th:block&amp;gt;
                                                &amp;lt;th:block th:if=&quot;${session.user.sex == 'female'}&quot;&amp;gt;
                                                    &amp;lt;option th:name=&quot;male&quot; value=&quot;male&quot;&amp;gt;male&amp;lt;/option&amp;gt;
                                                    &amp;lt;option th:name=&quot;female&quot; value=&quot;female&quot; selected&amp;gt;female&amp;lt;/option&amp;gt;
                                                &amp;lt;/th:block&amp;gt;
                                            &amp;lt;/th:block&amp;gt;
                                        &amp;lt;/select&amp;gt;
                                    &amp;lt;/div&amp;gt;
                                &amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                            &amp;lt;div class=&quot;form-group&quot;&amp;gt;
                                &amp;lt;label class=&quot;col-md-3 control-label&quot;&amp;gt;&amp;lt;/label&amp;gt;
                                &amp;lt;div class=&quot;col-md-8&quot;&amp;gt;
                                    &amp;lt;button type=&quot;submit&quot; class=&quot;btn btn-success btn-lg&quot; id=&quot;btnSignIn&quot;&amp;gt;
                                        Save Changes
                                    &amp;lt;/button&amp;gt;
                                    &amp;lt;span&amp;gt;&amp;lt;/span&amp;gt;
                                    &amp;lt;input class=&quot;btn btn-default&quot; value=&quot;Cancel&quot; type=&quot;reset&quot;&amp;gt;
                                &amp;lt;/div&amp;gt;
                            &amp;lt;/div&amp;gt;
                        &amp;lt;/form&amp;gt;
                    &amp;lt;/div&amp;gt;
                &amp;lt;/div&amp;gt;
            &amp;lt;/div&amp;gt;

        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;
&amp;lt;/div&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/pre&gt;



&lt;p&gt;to dane mojego konta wyświetlam za pomocą obiektu sesji czyli np.&amp;nbsp;&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
session.user.name&lt;/pre&gt;



&lt;p&gt;i właśnie nie jestem pewien czy jest to odpowiedni sposób. Również mógłbym to zrobić poprzez dodanie obiektu z sesji najpierw do modelu&lt;/p&gt;



&lt;pre class=&quot;brush:plain;&quot;&gt;
model.addAttribute(&quot;user&quot;, session.getAttribute(user));&lt;/pre&gt;



&lt;p&gt;i wtedy mógłbym po prostu odnosić się do obiektu user, a nie sesji. Albo np. te alerty. Utworzyć&amp;nbsp;np. tylko jeden alert, a do modelu podawać jakiej klasy ma być ten alert i jaki ma pokazać tekst? Jak uważacie?&amp;nbsp;Które sposoby są lepsze? Przy wielu takich wrzutach na model, kod java trochę były tym zawalony.&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/246360/uzywanie-w-pliku-html-bezposrednio-danych-z-sesji-czy-np-poprzez-model</guid>
<pubDate>Thu, 20 Apr 2017 14:17:38 +0000</pubDate>
</item>
<item>
<title>Podłączenie pliku .js pod szablon Thymeleaf</title>
<link>https://forum.pasja-informatyki.pl/246264/podlaczenie-pliku-js-pod-szablon-thymeleaf</link>
<description>

&lt;p&gt;Posiadam plik .html w którym używam szablonu Thymeleaf i zaincludowałem kilka potrzebnych plików .css i .js. Problem polega na tym, że pliki .js nie działają w przeciwieństwie do .css.&lt;/p&gt;



&lt;pre class=&quot;brush:xml;&quot;&gt;
    &amp;lt;link rel=&quot;stylesheet&quot; th:href=&quot;@{/resources/bootstrap/css/bootstrap.min.css}&quot;/&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; th:href=&quot;@{/resources/bootstrap/css/login.css}&quot;/&amp;gt;
    &amp;lt;link rel=&quot;stylesheet&quot; th:href=&quot;@{/resources/bootstrap/css/navbar.css}&quot;/&amp;gt;
    &amp;lt;script th:src=&quot;@{/resources/bootstrap/js/bootstrap.min.js}&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script th:src=&quot;@{/resources/bootstrap/js/jquery.min.js}&quot;&amp;gt;&amp;lt;/script&amp;gt;
    &amp;lt;script th:src=&quot;@{/resources/bootstrap/js/scripts.js}&quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;/pre&gt;



&lt;p&gt;podczas kiedy używałem jeszcze JSP to działało, ale po przesiadce na Thymeleaf przestały działać includy .js. Dziwne, bo są zaincludowane tak samo jak pliki css. Może źle je importuje? Ale raczej jak można to inaczej zrobić w Thymeleaf.&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/246264/podlaczenie-pliku-js-pod-szablon-thymeleaf</guid>
<pubDate>Thu, 20 Apr 2017 00:33:57 +0000</pubDate>
</item>
<item>
<title>Spring Boot - kontroler formularza zwraca same NULLe</title>
<link>https://forum.pasja-informatyki.pl/216508/spring-boot-kontroler-formularza-zwraca-same-nulle</link>
<description>

&lt;p&gt;Mam problem z formularzem do aktualizacji danych użytkownika. Kontroler zwraca same nulle, tak jakby nie docierały dane z formularza.&amp;nbsp;&lt;/p&gt;



&lt;p&gt;Mam stworzony model z getterami i setterami dla Usera &lt;a rel=&quot;nofollow&quot; href=&quot;http://pastebin.com/wumXhMAX&quot;&gt;http://pastebin.com/wumXhMAX&lt;/a&gt;
&lt;br&gt;
Formularz pobiera dane z kontrolera, ale niestety po kliknięciu w submit kontroler odpowiedzialny za przechwycenie danych zwraca same nulle :&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://pastebin.com/eqAgHCnS&quot;&gt;http://pastebin.com/eqAgHCnS&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Kontroler:&amp;nbsp;&lt;a rel=&quot;nofollow&quot; href=&quot;http://pastebin.com/yfDYQSWk&quot;&gt;http://pastebin.com/yfDYQSWk&lt;/a&gt;&lt;/p&gt;



&lt;p&gt;Dziękuję za wszystkie wskazówki! Pozdrawiam&lt;/p&gt;</description>
<category>Java</category>
<guid isPermaLink="true">https://forum.pasja-informatyki.pl/216508/spring-boot-kontroler-formularza-zwraca-same-nulle</guid>
<pubDate>Sun, 15 Jan 2017 17:39:17 +0000</pubDate>
</item>
</channel>
</rss>