Projektowanie frontendu - dobra praktyka z contentem

Odpowiedz Nowy wątek
2015-02-14 00:23
0

Siema

To pytanie może się wydać dla większości was, szczególnie tych bardziej doświadczonych dość trywialne. Nigdy nie miałem ku temu powodu do zastanowień, może przez brak potrzeby.
A mianowicie ciekawi mnie jak "dobrze" zaprojektować stronę pod kątem layoutu. O co dokładniej chodzi?

Załóżmy, że mam wizje wyglądu strony, przygotowałem jakiś szablon bootstrapem/foundation albo pociąłem sobie to w photoshopie, nie istotne, po prostu mam pomysł. I chciałbym, żeby każda moja strona/podstrona itd trzymała się tego layoutu (wiadomo nie w 100% ale np menu, jakies tam paski nawigacji są statyczne) i teraz pytanie:

Przypuśćmy, mamy aplikacje w javie + jstl i pytanie: jak robie podstrony np. home.jsp, user.jsp, products.jsp czy cokolwiek - czy po prostu layout z głównego pliku przeklejać do każdej z tych stron i zmieniać ich zawartość według potrzeb, czy lepiej zrobić jeden plik w stylu "template.jsp" z elementami statycznymi i jednym tagiem w stylu "content" gdzie zawartość się zmienia i w nim dawać include dla podstron.
Tylko np w wypadku javy + springmvc jaki sens miałoby zwaracanie widoków z kontrolerów, jeśli używalibyśmy ciągle tego samego widoku(template.jsp), tylko w "content" ładowały by się te dynamiczne elementy.

Np w SPA mamy tak, ze jest część stała i część która się podmienia - zatem które rozwiązanie jest lepsze uzywając np JSTL czy freemarkera w javie - taki "SPA-style" czy copy-paste layoutu i podmiana zawartości wg potrzeby (tzn jeden plik na jedną podstrone powiedzmy)?

jeśli nagadałem bzdur forgive me, ale próbuje sobie dobrać jakiś sposób na to ;)

edytowany 3x, ostatnio: azalut, 2015-02-14 00:27

Pozostało 580 znaków

2015-02-14 01:29
0

Witaj,
Muszę przyznać że zaczynam dopiero zabawę ze springiem, ale z tego co wiem, powinno się robić tak jak napisałeś z plikiem template.jsp.
I w tym miejscu rodzi się też pytanie, ponieważ wiem jak to zrobić w pythonowym frameworku django czy flask, ale jak robi się w to plikach jsp?

PS:
Chodzi mi o te bloki, które możesz zobaczyć tutaj
https://docs.djangoproject.com/en/1.7/topics/templates/

pisałem troche w Django i tam właśnie na takiej zasadzie mniej więcej to było - azalut 2015-02-14 12:29

Pozostało 580 znaków

2015-02-14 01:36
3

Duplikacja kodu nigdy nie jest dobra. Po zmianie koncepcji będziesz musiał zmieniać pliki z każdą z podstron, co po 20. zmianie Cię dobije :P. Już nie mówiąc o błędach, bo 10x więcej miejsc do zmian na pewno jakies wygeneruje.

Pozostało 580 znaków

2015-02-14 12:32
0

@członek zarządu tak własnie myślałem, tylko teraz kwestia doboru jak przesyłać strony z kontrolerów. Bo przeciez musze zwrócić z nich widoki, więc zawsze zwracać template.jsp i do modelu dodać np. "content", "jakisKontent.jsp" i wtedy jak dam np. include we freemarkerze to mam (edit: wlasciwie w freemarkerze to akurat byloby jakisKontent.ftl, ale wiemy o co chodzi :))

<div>
<#include "${content}">
</div>

a templatów zrobić jeden, maks kilka (jeśli chciałbym zmienić wygląd strony np. całkowicie na którejs podstronie)

edytowany 1x, ostatnio: azalut, 2015-02-14 12:40

Pozostało 580 znaków

2015-02-14 16:48
0

Looknij na to jak to wygląda w pythonie. Zwracasz template który jest "najwyżej" a on robi extenda na niższe i podmienia bloki.
Co do javy to znalazłem takie coś http://stackoverflow.com/ques[...]cks-to-make-templating-easier

Pozostało 580 znaków

2015-02-14 22:56

Rozkminiłem jak to jest z freemarkerem. Zerknij tutaj https://github.com/kwon37xi/freemarker-template-inheritance
Ja poprostu z controllera zwracam stringa z nazwą tego template który jest u samej góry, czyli w tym przypadku tego https://github.com/kwon37xi/f[...]le/web/WEB-INF/ftls/index.ftl

bardzo fajne, dzięki :) - azalut 2015-02-16 23:08

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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