Spring MVC - Aplikacja z wieloma stronami

0

Cześć

Robiłem małe rozeznanie w sieci ale póki co nie udało mi się znaleźć zadowalającej odpowiedzi.

Technologie: Spring mvc , java 8, jsp.

Chodzi o serwis internetowy podzielony na kilka podstron

  1. Strona główna
  2. Strona 1
  3. Strona 2
  4. Strona 3
  5. Strona 5

Każda strona ma panel nawigacyjny z linkiem do innych.

1.Przejścia pomiędzy stronami najlepiej obsłużyć przez Controller zwracając nazwę widoku? czy może bezpośrednie linki w pliach jsp i wtedy w controllerach obsługiwać konkretne funkcjonaności ?
2. Jeżeli jest sposób którego nie wymieniłem w punkcie 1 to chętnie wysłucham.

0

Nie bardzo rozumiem. W widoku masz linki np. /home a w kontrolerze łapiesz taki mapping i zwracasz odpowiedni widok.

0

@Shalom może mało precyzyjnie się wyraziłem :).
idąc tym torem co mówisz że mam link w jsp controller to mapuje tego sposobu się najczęściej używa?
Tworze np pageController i w nim metody zwracające każdy widok jsp? czy bardziej się powinno grupować controllery wdg: nazwy jsp którego obsługują? np homeController , aboutProjectController ?

0

Zasadniczo jsp powinny nalezec do warstwy widoku. Kontrolery sluza wlasnie obsludze logiki biznesowej. W xxxx-servlet.xml masz odwzorowania adresow na kontrolery ktore je obsluguja. Czyli tak, w xxxx-servlrt.xml masz zapis np ze strona dupa.do jest obslugiwana przez np DupaController. Jesli ogarniasz te powiazania adnotacjami a nie zapisem w pliku xml, to nie zapomnij o adnotacjach @Controller i @RequestMapping. W metodzie doGet kontrolera opisujesz co ma sie zdazyc _- przykladowo pobierasz dane i przekazujesz do warstwy widoku. Nastepnie metoda doGet zwraca pod postacia Stringa nazwe widoku jsp (bez podania rozszerzenia) ktory ma zostac wyswietlony i np wyswietlic pobrane w kontrolerze i przekazane do widoku dane w postaci chocby tabelki.

0

@andrzejklusiewicz

W metodzie doGet kontrolera opisujesz co ma sie zdazyc _- przykladowo pobierasz dane i przekazujesz do warstwy widoku. Nastepnie metoda doGet zwraca pod postacia Stringa nazwe widoku jsp (bez podania rozszerzenia) ktory ma zostac wyswietlony i np wyswietlic pobrane w kontrolerze i przekazane do widoku dane w postaci chocby tabelki.

Ok, robię to za pomocą adnotacji..

public String homeController(){
return "home"
}

public String firstPageController(){

}

0

Przepraszam przez przypadek wysłałem nieukończony post :((

@andrzejklusiewicz
W metodzie doGet kontrolera opisujesz co ma sie zdazyc _- przykladowo pobierasz dane i przekazujesz do warstwy widoku. Nastepnie metoda doGet zwraca pod postacia Stringa nazwe widoku jsp (bez podania rozszerzenia) ktory ma zostac wyswietlony i np wyswietlic pobrane w kontrolerze i przekazane do widoku dane w postaci chocby tabelki.

Ok, robię to za pomocą adnotacji..
@RequestMapping(/home)
public String homeController(){
return "home"
}

@RequestMapping(/firstPage)
public String firstPageController(){
return "firstPage"
}

i teraz tak Tworzyć na każdą stronę osobny controller? czy zrobić w 1 controlerze i dac metody zwracajace widok do kazdej ze stron?
druga rzecz controlery obsługujące logikę biznesową ... jak to wszystko zorganizować zebym nie miał namieszane w controlerach:D

0

Ok, nazwales metody inaczej. Ja mam nawyk nazywania akurat doGet powstaly za czasow zwyklych servletow.
Wiec tak, nad nazwa klasy piszesz @Controller, nad metoda zwracajaca stringa home dajesz @RequestMapping("/home.do")
Ta metoda spowoduje wyświetlenie pliku home.jsp (bo zwracasz home). Masz dopisane w xxxx-servlet.xml ktore pakiety ma skanowac w poszukiwaniu kontrolerow i ze ma uzywac adnotacji? Mozesz tu wkleic web.xml i xxx-servlet.xml?

0
Krwawy Szczur napisał(a):

Przepraszam przez przypadek wysłałem nieukończony post :((

@andrzejklusiewicz
W metodzie doGet kontrolera opisujesz co ma sie zdazyc _- przykladowo pobierasz dane i przekazujesz do warstwy widoku. Nastepnie metoda doGet zwraca pod postacia Stringa nazwe widoku jsp (bez podania rozszerzenia) ktory ma zostac wyswietlony i np wyswietlic pobrane w kontrolerze i przekazane do widoku dane w postaci chocby tabelki.

Ok, robię to za pomocą adnotacji..
@RequestMapping(/home)
public String homeController(){
return "home"
}

@RequestMapping(/firstPage)
public String firstPageController(){
return "firstPage"
}

i teraz tak Tworzyć na każdą stronę osobny controller? czy zrobić w 1 controlerze i dac metody zwracajace widok do kazdej ze stron?
druga rzecz controlery obsługujące logikę biznesową ... jak to wszystko zorganizować zebym nie miał namieszane w controlerach:D

Jak Ci wygodniej. A co ma apka robic i co chcesz obsługiwać tymi kontrolerami?

0

Wiesz Co ma obsługiwać jest zmienne :D ponieważ uczę się na tym projekcie i jak już wiem jak coś zrobić przychodzi pytanie czy to aby na pewno dobrze i "wdg dobrych praktyk" i zaczynam grzebać czasami to trwa.. :)

Co chciałbym obsługiwać - na ten moment lista nie jest duża

  1. działania z bazą danych dodawania usuwania itp (już mam przygotowane serwisy i dao do CRUD)
  2. dodawanie plików img. pdf
  3. komentarze
  4. inne :)
  5. na pewno chciałbym przećwiczyć uri :)

Nie wiem czy zaczynam od "pupy" strony czy nie ... ale na razie chciałbym poprawnie stworzyć przejścia pomiędzy stronami i tak potworzyć controllery żebym nie musiał zaraz przerabiać jak będę dodawał funkcjonalości do każdej z nich

Stronka ma się dzielić na stronę główną i kilka podstron gdzie każda podstrona będzie miała jakąś rolę . np strona od dodawania danych (planuje tu dodać logowanie ze springiem Security), strona od wyświetlania zdjęć i ich komentowania,

0

To mozesz kazdy adres dac do osobnego kontrolera. Mniej zamieszania, lepszy porzadek. Poza tym taka apka bedzie latwiejsza w rozbudowie, bo jak znam tego typu projekty, to zaraz sie pojawia tona patentow co by tu jeszcze wykombinowac i co do trgo zaprzac. Czyli bedzie w pyte przerobek i jeszcze wiecej wariantów. Moglbys przy okazji podpiac sie pod jakies repo svn albo git, latwiej bedzie Ci robic podwersje, ogolnie wersjonowac i ratowac sobie tylek jak w zapale zabierzesz sie za przerobki a zamiast apki skompiluje Ci sie przystanek autobusowy #wujekdobrarada ;D

0

Ok dzięki za radę

Czyli reasumując czy dobrze zrozumiałem

KontrollerONazwieWidoku - metoda pokażStronę , metoda zróbCoś1 , metoda zróbCoś2

i ten szablon do wszystkich stronek.

Btw. Znacie dobrą i sprawdzoną stronę/repozytorium na temat struktur projektów fajnie żeby było z opisem kiedy stosować i frytki do tego :D

0
Krwawy Szczur napisał(a):

Ok dzięki za radę

Czyli reasumując czy dobrze zrozumiałem

KontrollerONazwieWidoku - metoda pokażStronę , metoda zróbCoś1 , metoda zróbCoś2

i ten szablon do wszystkich stronek.

Btw. Znacie dobrą i sprawdzoną stronę/repozytorium na temat struktur projektów fajnie żeby było z opisem kiedy stosować i frytki do tego :D

Tak mniej wiecej bym zrobil. W sensie ze jak struktur projwktow? Przykladowe projekty?

0

SEO troll attack? Dziwię się, że nie ma 'nofollow' w linkach w stopce...

1 użytkowników online, w tym zalogowanych: 0, gości: 1