Komponenty w server side view (a w tle wątku Wicket)

Komponenty w server side view (a w tle wątku Wicket)
AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:około rok
  • Postów:3561
0

Już objaśniam skomplikowane pytanie ;)

Mam na myśli widoki generowane Server Side, czyli te "niemodne". Na przykład Spring MVC (bo to wszyscy rozumieją, albo przynajmniej tak myślą), choć nie skupiajmy się na tym. Na przykład widok w Ratpack

Przykład (rzeczywisty) takiego komponentu, to generyczna SuperDuperHtmlTable, powtarzająca się na wielu stronach (widokach), a służąca prezentowaniu wyników z kwerend bazodanowych, z dzieleniem tabeli na sekcie, nagłówkami, subtotalami i totalami itd...
Lub inne komponenty, np generyczny nagłówek / filtr do tych kwerend.
SuperDuperHtmlTable jest o tyle miłe, że nie charakteryzuje się stanem, czysty GET, więc możecie na razie o tym myśleć.

Mój ułomny przegląd możliwości pozwala mi odnotować następujące możliwości:

  • Thymeleaf, Mustache - na obecnym etapie nie wymyśliłem, może się nie da???
  • JSP View - zrobić swoje JSTL tagi, lub wyrażenie EL (hiper duper ??? jeśli w ogóle, to brzydkie)
  • Facelet'sy (tak, nawet w Springu jest taka technologia widoku). Niemal jak powyżej. Swoje tagi. Na marginesie, Primefaces ma podobną SDHTable, ale niemal niemożliwe by zadziałała w tak uproszczonym cyklu życia.

Motywacje. Dla chcących zrozumieć kontekst, lub się spierać.
Od wielu lat uprawiam Apache Wicket, gdzie tworzenie komponentów to bajka, która nawet seniora nie potrzebuje, a odbywa się w czystym kodzie Java i adekwatna do komplikacji komponentu znajomość HTML (czyli bardzo niska). Kompozycja lub dziedziczenie, sama elegancja.
W naturalny sposób jest stanowy (statefull) ale można bezstanowy (stateless). Perfekcyjnie się AJAXuje

Inne komponentowe frameworki (zarazem są statefull) to

  • Vaadin, najbardziej podobny do Wicketa, stoją za nim znaczne pieniądze. Raczej nie jest "niemodny", ma starter w Boocie.
  • JSF (mam znajomość na pozimie troszkę wyższym niż HelloWorld, nie uprawiam na produkcji). Powołanie komponentu już jest sporo trudniejsze, ale możliwe
  • Apache Tapestry. W latach gdy wybierałem technologię, wymagał 3 plików per komponent (XML/HTML/Java), obecnie zredukowali. Nie mam szczegółowej wiedzy.

Jestem niepomiernie zdziwiony, jaki wielki krok wstecz bym musiał wykonać, przechodząc do "modnych" technologii. Nie chcę w tym poście się zagłębiać w dyskusje nt Client Side, krótko jest mi (niemal) zbędne.

Wracając do pytania o bardziej surowy View, np Springowy, jakie pomysły mi podrzucicie do poczytania / popróbowania.


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 4x, ostatnio: AnyKtokolwiek
jarekr000000
  • Rejestracja:ponad 8 lat
  • Ostatnio:10 minut
  • Lokalizacja:U krasnoludów - pod górą
  • Postów:4706
1

Propozycja: zrób raz normalnie, dla nauki, A potem zobacz czy jesteś bardzo wstecz.


jeden i pół terabajta powinno wystarczyć każdemu
KamilAdam
  • Rejestracja:ponad 6 lat
  • Ostatnio:3 dni
  • Lokalizacja:Silesia/Marki
  • Postów:5505
0
  1. JSF to tylko dokumentacja. Niby jest jakaś przykładowa implementacja ale za dużych możliwości nie miała jak się tym interesowałem.
  2. Primefaces to implementacja JSF. Kiedyś była najlepsza z implementacji JSF. Ale i tak nie chciałbym w tym drugi raz pracować.
  3. Nie rozumiem czemu nie chcesz użyć Wicket? Jakbym miał wybierać coś totalnie różnego to wybrałbym Thymeleaf lub Mustache. A ze Scalą twirl lub Scalate. Jak cos podobnego to Vaadin

Mama called me disappointment, Papa called me fat
Każdego eksperta można zastąpić backendowcem który ma się douczyć po godzinach. Tak zostałem ekspertem AI, Neo4j i Nest.js . Przez mianowanie
AK
  • Rejestracja:ponad 6 lat
  • Ostatnio:około rok
  • Postów:3561
0
KamilAdam napisał(a):
  1. Nie rozumiem czemu nie chcesz użyć Wicket? Jakbym miał wybierać coś totalnie różnego to wybrałbym Thymeleaf lub Mustache. A ze Scalą twirl lub Scalate. Jak cos podobnego to Vaadin

**Wicket **? Rozglądam się, tzn "cza się rozwijać". Nawet papier toaletowy to robi.

Ale im bardziej się rozglądam, tym bardziej wzrasta moje uznanie dla chłopaków ;)

Może nawrócę @jarekr000000 ? ;)
Wstrzykiwanie nie jest konieczne, rdzeń na tym nie pracuje, jest w modułach, developerka przez kod javowy, a nie czary, Zamiar frameworku nie wykracza poza rozsądek (tzn nie wtrąca się do backendu, "najniższy dół" to zaimplementowanie IModel). Aha, adnotacji nie ma w core, jest w wicketstuff, czyli druga linia opcjonalna ;)

Od wersji 8 ma streamy, lambdy, Optional w core też jest.** Generalnie polecam**, potrzebującym pomogę kilkoma tipami.

EDIT Aha, @KamilAdam, co do motywacji, to poromansował bym z Ratpackiem w zakresie produkcyjnym. Ale to może w czymś przyszłym dwuwarstwowym.


Bo C to najlepszy język, każdy uczeń ci to powie
edytowany 2x, ostatnio: AnyKtokolwiek
MA
  • Rejestracja:ponad 12 lat
  • Ostatnio:około 3 lata
  • Postów:166
0
KamilAdam napisał(a):
  1. JSF to tylko dokumentacja. Niby jest jakaś przykładowa implementacja ale za dużych możliwości nie miała jak się tym interesowałem.
  2. Primefaces to implementacja JSF. Kiedyś była najlepsza z implementacji JSF. Ale i tak nie chciałbym w tym drugi raz pracować.
  3. Nie rozumiem czemu nie chcesz użyć Wicket? Jakbym miał wybierać coś totalnie różnego to wybrałbym Thymeleaf lub Mustache. A ze Scalą twirl lub Scalate. Jak cos podobnego to Vaadin

Cześć. Pozwolę sobie skomentować dwa punkty powyższej odpowiedzi.
Ad 1. JSF jest to jedna ze specyfikacji Javy EE, obecnie Jakarty EE. Istnieje wiele implementacji JSF. Serwery aplikacyjne Javy np. WildFly, Payara zawierają implementację JSF. Natomiast można przyznać, że JSF nie jest obecnie już popularnym wyborem.
Ad 2. PrimeFaces nie jest implementacją JSF. PrimeFaces to dodatkowa biblioteka, która rozszerza funkcjonalności JSF.

AK
Wszystko to rozumiem. Dzięki za wypowiedź
Kliknij, aby dodać treść...

Pomoc 1.18.8

Typografia

Edytor obsługuje składnie Markdown, w której pojedynczy akcent *kursywa* oraz _kursywa_ to pochylenie. Z kolei podwójny akcent **pogrubienie** oraz __pogrubienie__ to pogrubienie. Dodanie znaczników ~~strike~~ to przekreślenie.

Możesz dodać formatowanie komendami , , oraz .

Ponieważ dekoracja podkreślenia jest przeznaczona na linki, markdown nie zawiera specjalnej składni dla podkreślenia. Dlatego by dodać podkreślenie, użyj <u>underline</u>.

Komendy formatujące reagują na skróty klawiszowe: Ctrl+B, Ctrl+I, Ctrl+U oraz Ctrl+S.

Linki

By dodać link w edytorze użyj komendy lub użyj składni [title](link). URL umieszczony w linku lub nawet URL umieszczony bezpośrednio w tekście będzie aktywny i klikalny.

Jeżeli chcesz, możesz samodzielnie dodać link: <a href="link">title</a>.

Wewnętrzne odnośniki

Możesz umieścić odnośnik do wewnętrznej podstrony, używając następującej składni: [[Delphi/Kompendium]] lub [[Delphi/Kompendium|kliknij, aby przejść do kompendium]]. Odnośniki mogą prowadzić do Forum 4programmers.net lub np. do Kompendium.

Wspomnienia użytkowników

By wspomnieć użytkownika forum, wpisz w formularzu znak @. Zobaczysz okienko samouzupełniające nazwy użytkowników. Samouzupełnienie dobierze odpowiedni format wspomnienia, zależnie od tego czy w nazwie użytkownika znajduje się spacja.

Znaczniki HTML

Dozwolone jest używanie niektórych znaczników HTML: <a>, <b>, <i>, <kbd>, <del>, <strong>, <dfn>, <pre>, <blockquote>, <hr/>, <sub>, <sup> oraz <img/>.

Skróty klawiszowe

Dodaj kombinację klawiszy komendą notacji klawiszy lub skrótem klawiszowym Alt+K.

Reprezentuj kombinacje klawiszowe używając taga <kbd>. Oddziel od siebie klawisze znakiem plus, np <kbd>Alt+Tab</kbd>.

Indeks górny oraz dolny

Przykład: wpisując H<sub>2</sub>O i m<sup>2</sup> otrzymasz: H2O i m2.

Składnia Tex

By precyzyjnie wyrazić działanie matematyczne, użyj składni Tex.

<tex>arcctg(x) = argtan(\frac{1}{x}) = arcsin(\frac{1}{\sqrt{1+x^2}})</tex>

Kod źródłowy

Krótkie fragmenty kodu

Wszelkie jednolinijkowe instrukcje języka programowania powinny być zawarte pomiędzy obróconymi apostrofami: `kod instrukcji` lub ``console.log(`string`);``.

Kod wielolinijkowy

Dodaj fragment kodu komendą . Fragmenty kodu zajmujące całą lub więcej linijek powinny być umieszczone w wielolinijkowym fragmencie kodu. Znaczniki ``` lub ~~~ umożliwiają kolorowanie różnych języków programowania. Możemy nadać nazwę języka programowania używając auto-uzupełnienia, kod został pokolorowany używając konkretnych ustawień kolorowania składni:

```javascript
document.write('Hello World');
```

Możesz zaznaczyć również już wklejony kod w edytorze, i użyć komendy  by zamienić go w kod. Użyj kombinacji Ctrl+`, by dodać fragment kodu bez oznaczników języka.

Tabelki

Dodaj przykładową tabelkę używając komendy . Przykładowa tabelka składa się z dwóch kolumn, nagłówka i jednego wiersza.

Wygeneruj tabelkę na podstawie szablonu. Oddziel komórki separatorem ; lub |, a następnie zaznacz szablonu.

nazwisko;dziedzina;odkrycie
Pitagoras;mathematics;Pythagorean Theorem
Albert Einstein;physics;General Relativity
Marie Curie, Pierre Curie;chemistry;Radium, Polonium

Użyj komendy by zamienić zaznaczony szablon na tabelkę Markdown.

Lista uporządkowana i nieuporządkowana

Możliwe jest tworzenie listy numerowanych oraz wypunktowanych. Wystarczy, że pierwszym znakiem linii będzie * lub - dla listy nieuporządkowanej oraz 1. dla listy uporządkowanej.

Użyj komendy by dodać listę uporządkowaną.

1. Lista numerowana
2. Lista numerowana

Użyj komendy by dodać listę nieuporządkowaną.

* Lista wypunktowana
* Lista wypunktowana
** Lista wypunktowana (drugi poziom)

Składnia Markdown

Edytor obsługuje składnię Markdown, która składa się ze znaków specjalnych. Dostępne komendy, jak formatowanie , dodanie tabelki lub fragmentu kodu są w pewnym sensie świadome otaczającej jej składni, i postarają się unikać uszkodzenia jej.

Dla przykładu, używając tylko dostępnych komend, nie możemy dodać formatowania pogrubienia do kodu wielolinijkowego, albo dodać listy do tabelki - mogłoby to doprowadzić do uszkodzenia składni.

W pewnych odosobnionych przypadkach brak nowej linii przed elementami markdown również mógłby uszkodzić składnie, dlatego edytor dodaje brakujące nowe linie. Dla przykładu, dodanie formatowania pochylenia zaraz po tabelce, mogłoby zostać błędne zinterpretowane, więc edytor doda oddzielającą nową linię pomiędzy tabelką, a pochyleniem.

Skróty klawiszowe

Skróty formatujące, kiedy w edytorze znajduje się pojedynczy kursor, wstawiają sformatowany tekst przykładowy. Jeśli w edytorze znajduje się zaznaczenie (słowo, linijka, paragraf), wtedy zaznaczenie zostaje sformatowane.

  • Ctrl+B - dodaj pogrubienie lub pogrub zaznaczenie
  • Ctrl+I - dodaj pochylenie lub pochyl zaznaczenie
  • Ctrl+U - dodaj podkreślenie lub podkreśl zaznaczenie
  • Ctrl+S - dodaj przekreślenie lub przekreśl zaznaczenie

Notacja Klawiszy

  • Alt+K - dodaj notację klawiszy

Fragment kodu bez oznacznika

  • Alt+C - dodaj pusty fragment kodu

Skróty operujące na kodzie i linijkach:

  • Alt+L - zaznaczenie całej linii
  • Alt+, Alt+ - przeniesienie linijki w której znajduje się kursor w górę/dół.
  • Tab/⌘+] - dodaj wcięcie (wcięcie w prawo)
  • Shit+Tab/⌘+[ - usunięcie wcięcia (wycięcie w lewo)

Dodawanie postów:

  • Ctrl+Enter - dodaj post
  • ⌘+Enter - dodaj post (MacOS)