2010-04-19 30 views

Trả lời

9

Trong một Servlet, bạn có thể nhận được yêu cầu scoped đậu theo:

Bean bean = (Bean) request.getAttribute("beanName"); 

và phiên scoped đậu theo:

Bean bean = (Bean) request.getSession().getAttribute("beanName); 

và ứng dụng scoped đậu theo:

Bean bean = (Bean) getServletContext().getAttribute("beanName"); 
+0

As far như tôi biết đậu không nhất thiết phải được khởi tạo háo hức bởi JSF. Vì vậy, điều này sẽ thất bại nếu đậu không được truy cập trước thông qua lớp JSF. – lexicore

+1

@lexi: Đúng vậy. Tuy nhiên, nếu bạn cần tự tạo các hạt đó trong một servlet thay vì lấy những cái đã được tạo ra, thì có một điều gì đó sai trong cách tiếp cận/thiết kế. Một trong hai nhiệm vụ là phải được thực hiện hoàn toàn bởi một bean JSF, hoặc bạn không cần JSF chút nào cho nhiệm vụ cụ thể. Khó nói bởi vì yêu cầu chức năng thực tế của OP là mơ hồ. Hãy nhớ rằng Servlet về cơ bản chỉ là một bộ điều khiển trang/mặt trước, công việc mà FacesServlet đã điền đầy đủ. Có lẽ servlet đang làm quá nhiều hoặc OP đơn giản là không làm như vậy trong một bean JSF. – BalusC

+0

Tôi có thể theo dõi lập luận của bạn nhưng không đồng ý hoàn toàn. Người ta có thể sử dụng JSF để quản lý bean và các servlet không phải Faces cho front-end mà không phù hợp với JSF rất tốt. Ví dụ, một cái gì đó giống như DWR. Cá nhân tôi, tôi thường thích Spring cho DI hơn là JSF quản lý đậu, nhưng có rất nhiều kịch bản mà JSF sẽ là quá đủ để quản lý đậu. – lexicore

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