Tôi hiện đang tìm hiểu về JSF 2.0 và im rất vui vì sự tồn tại của tính năng phạm vi hội thoại này, rất hữu ích trong việc mở tab mới hoặc cửa sổ mới trên cùng một trang và có tài nguyên riêng biệt, không ghi đè nhau.JSF CDI: Phạm vi cuộc trò chuyện đậu [s] thực hành tốt nhất
Nhưng tôi rất tò mò về cách triển khai điều này theo cách tốt, về thời điểm bắt đầu cuộc trò chuyện và thời điểm đóng cuộc trò chuyện.
Trong trường hợp của tôi, tôi có mỗi hạt CDI cho mỗi trang JSF. Và chúng ta hãy nói rằng tôi có một menu, và khi nó được nhấp, điều này sẽ dẫn đến trang A, và từ A, có thể dẫn đến B, B có thể dẫn đến C, C có thể dẫn đến D, tất cả 4 trang này được kết nối trong một chuỗi.
Truy cập các thuộc tính bean của A từ hạt B hoặc C hoặc D, có thể truy cập các thuộc tính của B cũng có thể từ hạt C hoặc D và vv.
Bây giờ im khá bối rối về:
- liệu tất cả những A C D B nên trong phạm vi trò chuyện hay không, hoặc có lẽ chỉ A? Bởi vì tôi nghĩ rằng đôi khi từ một trang khác là bên ngoài chuỗi ABCD, như một trang F, nó có thể điều hướng đến trang B, mặc dù tôi không biết cách cung cấp dữ liệu cho bean B chưa được cung cấp .
- liệu tất cả những ABCD nên kết hợp thành một đậu
- ở đâu và khi nào thì bắt đầu trò chuyện, im suy nghĩ về các nhà xây dựng , nhưng tôi không nghĩ rằng đó là một ý tưởng tốt, bởi vì tôi thích bắt đầu cuộc trò chuyện khi lần đầu tiên truy cập trang, không phải là đậu
- ở đâu và khi nào phải ngừng cuộc nói chuyện , do đó có wont được nguồn lực chưa được sử dụng treo xung quanh
Hãy chia sẻ suy nghĩ của bạn về điều này.
CDI không thuộc JSF chuẩn.CDI là viết tắt của Contexts và Dependency Injection (JSR-299) bao gồm các chú thích của gói 'javax.enterprise'. Phạm vi hội thoại cũng không phải là một phần của JSF chuẩn. Nó là một phát minh JBoss Seam trong thời kỳ JSF 1.2 và đã được thông qua bởi đặc tả JSF 2.0 là View Scope, có thể chuyển đổi bằng chú thích '@ ViewScoped'. Bây giờ, bạn đang thực sự nói về cái gì? – BalusC
Xin chào BalusC, cảm ơn vì đã làm rõ. Tôi đã sử dụng thuật ngữ CDI chỉ để làm rõ những gì tôi đang sử dụng, nhưng có lẽ thông tin đó không liên quan đến câu hỏi của tôi, lời xin lỗi của tôi :) Theo tôi biết, @ViewScoped là một trang đơn được hiển thị lại và các thuộc tính sẽ kiên trì. Nhưng những gì tôi muốn đạt được từ phạm vi hội thoại là tôi có thể mở cùng một trang trên một số tab, với mỗi tab như thể có phạm vi phiên riêng của nó. Vì vậy, gửi giá trị 'albert' vào một myBean.name trên một tab sẽ không ghi đè lên myBean.name trên các tab khác. Nhưng tôi đã nhầm lẫn về nơi bắt đầu và kết thúc cuộc trò chuyện. – bertie
Và điều này càng gây nhầm lẫn cho tôi nếu có 4 trang, ví dụ, trang A là trang duyệt, nơi người dùng có thể tìm kiếm, trang B là trang chi tiết, nơi người dùng có thể sửa đổi chi tiết, trang C là nơi người dùng có thể sửa đổi phụ chi tiết, v.v. Nếu tôi muốn có thể mở trang A trong một vài tab mà không ảnh hưởng đến trang khác, tôi phải sử dụng phạm vi hội thoại trên bean của A. Nhưng tôi cho rằng nó sẽ là phạm vi đối thoại quá cho B C và D? Ngoài ra về nơi và khi nào tôi nên bắt đầu/kết thúc cuộc trò chuyện. Ý tôi là, người dùng có thể mở các tab mới và đóng các tab. Làm thế nào tôi có thể phát hiện điều này và đóng cuộc trò chuyện? – bertie