JSP vs FreeMarker [zamknięty]

Czy JSP zapewnia większą elastyczność niż FreeMarker czy na odwrót? Moje zaplecze obejmuje serwlety. Który z nich jest używany w jakich okolicznościach?

Author: ROMANIA_engineer, 2011-04-06

4 answers

JSP pozwoli Ci robić więcej rzeczy w warstwie widoku, więc można powiedzieć, że to czyni ją bardziej elastyczną. Rzeczy, których prawdopodobnie nie powinieneś robić, co można by argumentować jako korzyść dla Freemarkera. Pozwoli to na większą kontrolę nad tym, co może zrobić warstwa widoku i wymusi lepsze oddzielenie obaw.

Nie ma tu żadnej właściwej odpowiedzi. Możesz technicznie osiągnąć prawie wszystko za pomocą dowolnego interfejsu użytkownika. Bez więcej szczegółów na temat twojego projektu trudno wydaj rekomendację. Jedyne, co mogę powiedzieć, to to, że prawdopodobnie powinieneś użyć wzorca MVC . Można to osiągnąć z obu.

 10
Author: WhiteFang34,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-05 23:47:49

Moją odpowiedzią na pewno będzie FreeMarker. Powodem jest elastyczność w czasie użytkowania.

  1. Nie wymaga kontenera servleta, więc możesz renderować również e-maile lub cokolwiek tekstowego.

  2. W aplikacji webowej można tworzyć web-Moduły jako jar. Szablony Freemarker można łatwo załadować z classpath (również spring umożliwia załadowanie css / js-static content - z classpath z tagiem mvc: resources i skanowanie kontrolerów). So a moduł web może zawierać własne szablony, dane statyczne i kontrolery.

  3. Freemarker jest bardziej wydajny pod względem tworzenia niestandardowych tagów, jsp sprawia, że to po prostu ból. Ponadto niestandardowe znaczniki pozwalają na wywołanie sparametryzowanego ciała, którego tak naprawdę nie będziesz w stanie zrobić w JSP bardzo łatwo.

  4. Z Freemarkera możesz bez problemu korzystać z każdej dostępnej biblioteki znaczników JSP :)

 8
Author: mdinnyes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-03-05 14:36:10

Wierzę, że już wybrałeś jedną lub drugą opcję. W każdym razie komentarz może być przydatny dla innych. Jak napisał WhiteFang, używanie MVC jest jedyną wysoce zalecaną sugestią.

Jeśli Twoja aplikacja jest webowa, JSP prawdopodobnie będzie lepszą opcją, ponieważ jest lepiej znana i można napisać całkiem czysty kod prezentacji za pomocą JSTL (tylko upewnij się, że nie mieszasz w skryptach ... wszystkie dane powinny być przygotowane w servletach i przekazane do JSP jako atrybuty). Wybierając JSP możesz wnieść wartość do projektu, umożliwiając menedżerom łatwe podłączenie innych programistów, gdy są potrzebne do szybszego dostarczania itp.

W każdym razie, skoro już masz go na Freemarkerze, jeśli szablon wygląda już dobrze, nie zmieniłbym go. Raczej czekać, kiedy masz biznesowy powód do zmiany. Niezależnie od tego, jaka jest dobrze zaprojektowana aplikacja, będzie ona w końcu musiała zostać częściowo lub nawet całkowicie przebudowana. O ile zajmujesz się programowaniem modułowym i utrzymujesz transformację w izolowany moduł, będziesz mógł w każdej chwili łatwo przełączyć się na dowolną technologię, którą uznasz za odpowiednią (potencjalnie nową, lepszą niż FreeMarker lub JSP :) ).

Zazwyczaj używam Freemarkera dla aplikacji nie webowych. Lub nawet w aplikacjach internetowych, gdy na przykład muszę generować wiadomości e-mail z powiadomieniami, które nie muszą być włączone w sieci. W przeciwnym razie JSP działa świetnie do tej pory.

Stef.

 1
Author: Stef,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-10-25 04:35:12

Istnieje kilka bibliotek, które były wokół JSP, takich jak JSTL, DisplayTag, itp. które możesz użyć, jeśli zdecydujesz się przejść z JSP. Z Freemarkerem nie ma ich tak wielu.

JSP jest dostosowany do stron internetowych, FTL jest bardziej generycznym językiem szablonów - może być używany do generowania html, zwykłego tekstu, e-maili itp.

Aby wybrać jeden, musisz wziąć pod uwagę, jakie masz narzędzia. Wszystkie dobre IDE Java mają doskonałą obsługę JSP. Wsparcie FTL może / może nie być tak dobre.

 0
Author: rahul,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-04-06 00:20:41