2011-09-22 43 views
29

Tôi đang trong giai đoạn "lựa chọn công nghệ" của một ứng dụng web nhỏ, một trang sẽ dựa nhiều vào AJAX và sẽ báo cáo cho một chương trình phụ trợ Java.Spring MVC & UI Components

Trong câu hỏi trước tôi đã đăng vài tuần trước, cộng đồng SO lớn cảm thấy mạnh mẽ rằng tôi sẽ tốt hơn khi sử dụng ứng dụng web dựa trên Spring MVC so với một thứ gì đó trong JSF. Vì Spring là định hướng yêu cầu và JSF là định hướng thành phần, nên sẽ chỉ có ý nghĩa khi sử dụng Spring cho thứ gì đó sắp nhận được nhiều yêu cầu không đồng bộ.

Nếu tôi đi con đường JSF, sau đó tập tiếp theo của tôi về quyết định sẽ có hay không sử dụng cái gọi là thư viện thành phần giao diện người dùng cho các công nghệ xem, chẳng hạn như PrimeFaces, IceFaces hoặc MyFaces.

Vì vậy, tôi tự hỏi: Spring MVC có bất cứ điều gì tương tự như, PrimeFaces (hoặc thích của nó) để tạo thành phần xem cho (các) trang của tôi không? Tôi biết nó không phải là thành phần dựa trên, nhưng tôi không phải tất cả những gì quen thuộc với nền tảng web của Spring MVC và đã tự hỏi một số tiêu chuẩn de facto là gì (nếu có) hoặc ngăn xếp công nghệ điển hình mà các nhà phát triển web mùa xuân sử dụng để xây dựng các trang web đẹp .

Và, nếu mùa xuân chỉ sử dụng các công cụ mẫu run-o-the-mill, điều gì đó giống như Freemarker có đủ không?

Tôi đoán đây là câu hỏi kiểu "thực tiễn tốt nhất" dành cho nhà phát triển web mùa xuân vừa chớm nở.

Cảm ơn trước!

Trả lời

19

Thông thường, giá trị được gọi là thành phần giao diện người dùng nằm trong cách chúng theo dõi tương tác của người dùng ở phía máy chủ bằng cách tích hợp với một khung trạng thái.

Vì bạn đã quyết định đi theo một khung định hướng yêu cầu, nên sử dụng một số thư viện JavaScript phía máy khách nổi tiếng hơn sẽ có ý nghĩa hơn. lựa chọn phổ biến bao gồm:

Cá nhân, nếu tôi không cần nhiều tiện ích dựng sẵn chuẩn, tôi thích Backbone.js + underscore.js + jQuery. Tôi không thích Google Web Toolkit vì nó cảm thấy giống như viết một JavaScript pidgin, và tại thời điểm đó tôi thích viết JavaScript trực tiếp hơn.

+0

Tuyệt vời! Cảm ơn @Ludo! – IAmYourFaja

+0

Liên kết xương sống bị hỏng – Snickers3192

6

Có, JSF là định hướng thành phần và Spring MVC được yêu cầu định hướng. tôi khuyên bạn nên có một cái nhìn tại cơ Thymeleaf Template, đó là một sự thay thế hoàn toàn cho JSP cơ .... Tính năng Thymeleaf là:

  • Nó cho phép khuôn mẫu tự nhiên.
  • hỗ trợ HTML5 hiệu suất
  • cao hơn bằng cách sử dụng trong bộ nhớ cache

Click here for more

0

Bên cạnh đó ngoài những điều được đề cập bởi Ludovico Fischer, nếu chúng ta xem xét cùng một câu hỏi trong bây giờ là một thế giới công nghệ ngày hơn là bạn có thể sử dụng một trong những thứ đầy sức mạnh nhất của thế giới gần đây: Angular. Có 2 kịch bản mẫu.

  1. Nếu kiến ​​trúc của bạn là khách hàng đầy đủ: Việc tích hợp rất tự nhiên đối với nó. Spring MVC trưng ra dịch vụ của bạn như là một REST (JSON/XMl ...) và ứng dụng khách của bạn với Angular JS tiêu thụ JSON của bạn. Ở đây, ứng dụng chiến tranh (Spring mvc) phải được triển khai trong một Servlet Container (Tomcat) và ứng dụng máy khách của bạn có thể được triển khai trong cùng một máy chủ hoặc trong một máy chủ khác Nginx, Apache, vv ..
  2. Nếu bạn muốn giữ trang thế hệ ở phía máy chủ và chỉ sử dụng AngularJS cho một số thao tác DOM tốt để mã của bạn phải được triển khai trong cùng một cuộc chiến (WEB-INF). Trộn hai cách tiếp cận không phải luôn luôn là một ý tưởng tốt. Bạn có thể thử thymeleaf để duy trì việc tạo trang phía máy chủ.

    Vì vậy, theo cách này, bạn có thể đồng thời có các tính năng thú vị của góc như khuôn mẫu, khả năng kiểm tra và mã xem sạch.

0

Đây là cách tiếp cận khác (Không JSF) để cho Spring MVC để làm việc với các thành phần UI ZK - Rich Web Application with Spring MVC CRUD Demo

Trong bài viết đó, nó được sử dụng Spring MVC điều khiển để giao tiếp với các thành phần ZK UI. (tất cả trong mã Java)