2012-07-19 30 views
6

Tôi hoàn thành việc học ngôn ngữ Java và tìm cách viết các ứng dụng web rất nhỏ, vì Facelets có vẻ là sự thay thế cho JSP, và JSF có vẻ quá mức cần thiết cho các ứng dụng web nhỏ, tôi có thể học Facelets và sử dụng nó không có toàn bộ JSF stack? hay tôi nên đi với JSP cho các ứng dụng web nhỏ này?Facelets không có JSF

+1

Bạn có muốn đọc [này] (http: // stackoverflow. com/questions/2095397/what-is-the-sự khác biệt giữa jsf-servlet-và-jsp/2097732 # 2097732) và [this] (http://stackoverflow.com/questions/3177733/how-to-avoid -java-code-in-jsp-files/3180202 # 3180202) câu hỏi? – Lion

+3

Tôi đọc những điều đó nhưng họ không thực sự nói rằng nếu facelets có thể được sử dụng như một công nghệ độc lập. – Der

Trả lời

0

Facelets được phát triển cho nhu cầu của JSF và do đó phụ thuộc vào JSF. Nếu bạn cần templating cho JSP chỉ cần sử dụng < @import> hoặc thư viện nâng cao hơn là Apache Tiles.

5

có thể được sử dụng mà không cần JSF. Chỉ cần bản đồ FacesServlet trên một mẫu URL của *.xhtml trong web.xml và làm không tuyên bố

xmlns:f="http://java.sun.com/jsf/core" 
xmlns:h="http://java.sun.com/jsf/html" 

trong bất kỳ mẫu Facelet. Nó thực sự không gây hại để tuyên bố chúng, nhưng theo cách này bạn sẽ không "vô tình" sử dụng chúng. Bạn có thể viết tốt HTML thuần túy trong nó và gửi biểu mẫu tới một servlet đơn giản và có servlet forward/redirect tới Facelet. Bạn chỉ cần ghi nhớ rằng với servlet bạn sẽ có nhiều mã soạn sẵn hơn để thu thập các tham số yêu cầu, chuyển đổi/xác nhận chúng, duy trì và cập nhật các giá trị mô hình, gọi các hành động kinh doanh, trong khi tất cả điều này lặp đi lặp lại mã boilerplate là không cần thiết với một bean được quản lý JSF đầy đủ.

Ngoài ra, bạn không thể sử dụng Facelets với yêu cầu dựa khung MVC mà chỉ có JSP taglib sẵn, như Struts, Spring MVC vv

+1

Vâng, bạn vẫn cần toàn bộ bình jsf phải không? Ngoài ra, khi f: và h: không được sử dụng, các tùy chọn templating nào được để lại cho nhà phát triển? Chẳng phải ui được coi là một phần của jsf chẳng hạn? –

+0

Tại sao bạn nói không khai báo xmlns: f và: h? Và bạn có thể làm gì mà không cần sử dụng các thẻ này trong trang facelets? Chỉ có el có sẵn sau đó? –

+0

Không, tôi có nghĩa là tại sao bạn không nói "không khai báo ui:"? Tại sao bạn nói không khai báo f: và h: chỉ? –

Các vấn đề liên quan