Pertanyaan Komponen Spring MVC & UI


Saya sedang dalam tahap "pemilihan teknologi" dari aplikasi web kecil satu halaman yang akan sangat berbasis di AJAX, dan yang akan melaporkan ke backend Java.

Dalam pertanyaan sebelumnya yang saya posting beberapa minggu yang lalu, komunitas SO pada umumnya merasa kuat bahwa saya akan lebih baik menggunakan aplikasi web berbasis Spring MVC daripada dengan sesuatu di JSF. Karena Spring berorientasi permintaan, dan JSF berorientasi pada komponen, itu hanya masuk akal untuk menggunakan Spring untuk sesuatu yang akan mendapatkan banyak permintaan asynchronous.

Jika saya adalah pergi rute JSF, maka set berikutnya keputusan saya adalah apakah atau tidak untuk menggunakan apa yang disebut perpustakaan komponen UI untuk teknologi tampilan, seperti PrimeFaces, IceFaces atau MyFaces.

Jadi, saya bertanya-tanya: Apakah Spring MVC memiliki sesuatu yang mirip dengan, katakanlah, PrimeFaces (atau kesukaannya) untuk membuat komponen tampilan untuk halaman saya? Saya tahu ini bukan berbasis komponen, tapi saya tidak begitu akrab dengan platform web Spring MVC dan bertanya-tanya apa saja secara de facto standar (jika ada) atau tumpukan teknologi khas yang digunakan pengembang web Spring untuk membangun halaman web yang bagus.

Dan, jika Spring hanya menggunakan mesin template run-o-the-mill, akan sesuatu seperti Freemarker cukup?

Saya rasa ini adalah pertanyaan "best practices" -type untuk pengembang web Spring yang sedang berkembang.

Terima kasih sebelumnya!


32
2017-09-22 19:41


asal


Jawaban:


Biasanya, nilai yang disebut komponen UI terletak pada bagaimana mereka melacak interaksi pengguna di sisi server dengan mengintegrasikan dengan kerangka kerja stateful.

Karena Anda telah memutuskan untuk menggunakan kerangka berorientasi permintaan, akan lebih masuk akal untuk menggunakan beberapa pustaka JavaScript sisi-klien yang terkenal sebagai gantinya. Pilihan populer termasuk:

Secara pribadi, jika saya tidak membutuhkan banyak widget prebuilt standar, saya suka Backbone.js + underscore.js + jQuery. Saya tidak suka Google Web Toolkit karena rasanya seperti menulis pidgin JavaScript, dan pada saat itu saya lebih suka menulis JavaScript secara langsung.


20
2017-09-22 21:12



Ya, JSF berorientasi pada komponen dan Spring MVC berorientasi pada permintaan. Saya sarankan Anda untuk melihat pada mesin Thymeleaf Template, yang merupakan pengganti lengkap untuk JSP Engine .... Fitur Thymeleaf adalah:

  • Ini memungkinkan templating alami.
  • Dukungan HTML5
  • Performa lebih tinggi dengan memanfaatkan cache memori

Klik di sini untuk lebih lanjut


6
2018-01-22 21:21



Selain itu selain dari hal-hal yang disebutkan oleh Ludovico Fischer, jika kita mempertimbangkan pertanyaan yang sama di dunia teknologi saat ini daripada Anda dapat menggunakan salah satu kekuatan penuh dari dunia baru-baru ini: Sudut. Ada 2 skenario sampel.
 

  1. Jika arsitektur Anda adalah sisi klien penuh: Integrasi ini sangat alami untuk itu. Spring MVC mengekspos layanan Anda sebagai REST (JSON / XMl ...) dan aplikasi klien Anda dengan JS Sudut mengkonsumsi JSON Anda. Di sini aplikasi perang (Spring MVC) harus ditempatkan dalam Servlet Container (Tomcat) dan aplikasi klien Anda dapat digunakan di server yang sama atau di server lain Nginx, Apache dll.
  2. Jika Anda ingin menjaga pembuatan halaman di sisi server dan hanya menggunakan AngularJS untuk beberapa manipulasi DOM yang bagus, maka kode Anda harus digunakan dalam perang yang sama (WEB-INF). Mencampur dua pendekatan tidak selalu merupakan ide yang baik. Anda dapat mencoba thymeleaf untuk tetap berada di pembuatan halaman sisi server.

    Jadi dengan cara ini Anda dapat memiliki fitur-fitur keren seperti sudut templating, testability dan clean view code.


0
2017-08-25 09:40



Berikut ini pendekatan lain (Bukan JSF) untuk memungkinkan Spring MVC bekerja dengan komponen ZK UI - Aplikasi Web yang kaya dengan Spring MVC CRUD Demo

Dalam artikel itu, digunakan Spring MVC controller untuk berkomunikasi dengan komponen ZK UI. (semua dalam kode Java)


0
2017-11-17 08:11