Hãy xem kỹ các javadocs của chúng để xem phương thức nào chúng cung cấp và chính xác những gì tất cả các phương pháp đó đều làm.
Nếu bạn nhìn sâu hơn về các phương pháp đó được liệt kê trong javadoc, bạn sẽ nhận thấy rằng FacesContext
thường có thể sử dụng JSF cụ thể hiện vật mà là tiếp tục không có cách nào liên quan đến Servlet "" cơ bản hoặc API Portlet mà JSF được thiết kế để chạy trên đầu trang. Ví dụ. tạo các trình biến đổi, trình duyệt tính hợp lệ, các thành phần, biểu thức EL, etcetera và lấy thông tin về khung nhìn gốc, các ngôn ngữ được hỗ trợ, etcetera và thêm các trình lắng nghe pha, các trình lắng nghe sự kiện hệ thống, etcetera. Mọi thứ dành riêng cho API JSF.
Và, ExternalContext
thường cung cấp quyền truy cập vào các đồ tạo tác của Servlet hoặc Portlet cụ thể mà JSF hiện đang sử dụng "dưới nắp". Ví dụ: khi chạy trên vùng chứa Servlet, HTTP servlet request, HTTP servlet response, HTTP session và Servlet context và vốn dĩ cũng là tất cả các tạo tác của chúng. Nhấp vào các liên kết đó, bạn sẽ thấy rằng chúng lần lượt cung cấp các phương thức cũng được ủy quyền bởi ExternalContext
, chẳng hạn như getRequestParameterMap()
. Xem thêm the javadoc. Vâng, cũng nhấp vào liên kết đó, bạn sẽ thấy rằng nó đề cập đến một cách rõ ràng theo yêu cầu servlet:
Servlet: Đây phải là tập hợp các thông số có sẵn thông qua các phương pháp javax.servlet.ServletRequest
getParameter()
và getParameterNames()
.
Có gì có thể được cung cấp bởi các cả ngữ cảnh. Vì vậy, hoàn toàn không có lý do để thích cái này hay cái kia. Chỉ cần sử dụng một trong những quyền cho công việc bạn cần phải thực hiện.
Đối với ID khách hàng, nó thực sự được tạo bởi JSF, nhưng chắc chắn không phải trên khởi động của máy chủ. Nó chỉ được tạo cho mỗi thành phần JSF đơn trên cơ sở mỗi lần xem. Trong trường hợp của các thành phần đầu vào như <h:inputText>
, mà tạo ra một phần tử HTML <input>
, nó cũng trở thành thuộc tính name
như vậy
<input type="text" id="formId:inputId" name="formId:inputId" ... />
Các formId:inputId
chính là JSF client ID. Nó trở thành tên tham số yêu cầu. Biểu diễn HTML của nút lệnh cũng có một name
kết thúc dưới dạng tên thông số yêu cầu với giá trị của nút làm giá trị tham số.