Jacob Orshalick (tác giả của Seam Khung: Trải nghiệm Sự phát triển của Java EE) cho biết:Loại trừ đường may sẽ bị xóa?
Outjection phép bạn thực hiện các biến sẵn từ bối cảnh hiện nay để tiêm hoặc truy cập thông qua EL. Điều này có thể mang lại lợi ích nếu bạn muốn ghép nối một vài thành phần khác nhau để chèn cùng một biến ngữ cảnh (giống như người dùng hiện tại, khách sạn đang được đặt, vv). Nếu bạn muốn tránh bị từ chối, cách khác là sử dụng phương pháp @Factory hoặc đặt giá trị trực tiếp vào ngữ cảnh thông qua: Contexts.getConversationContext(). Set ("myVarName", myVar)
Lợi ích khác là hiệu suất. Bằng cách đưa ra một giá trị cho ngữ cảnh, bạn có thể bỏ qua việc phải vượt qua thành phần của mình để nhận được giá trị đó. Điều này đặc biệt áp dụng trong trường hợp các bảng dữ liệu với JSF (xem thảo luận này). Nhưng, như bạn sẽ thấy trong cuộc thảo luận, bạn cũng có thể sử dụng @BypassInterceptors để đạt được cùng một lợi ích.
Từ chối thực sự là một sự tiện lợi, nhưng những lợi ích tương tự chắc chắn có thể đạt được thông qua các phương tiện khác. Lưu ý rằng việc loại bỏ không được bao gồm trong Web Beans và sẽ bị phản đối hoặc loại bỏ hoàn toàn trong Seam 3, vì vậy đây là lý do để tránh nó khi có thể.
Chúng tôi có một đơn đăng ký có nhiều đề xuất và chúng tôi đã bắt đầu loại bỏ chúng. Anh ấy nói:
nhưng cùng một lợi ích chắc chắn có thể đạt được thông qua các phương tiện khác.
nhưng các phương tiện khác này là gì? Làm thế nào để loại bỏ các từ tính? Trong ASP.NET ví dụ bạn có các biến phiên. Trong Seam, bạn có thể loại bỏ var trong phiên (một lợi ích trong một số tình huống).
Hoặc phạm vi trang: (ví dụ trong chu kỳ jsf, bean sao lưu được gọi nhiều lần (đôi khi). Bạn có tài khoản được tải từ một tham số trang tài khoảnId. Bạn có thể tải tài khoản, từ chối nó với phạm vi trang OR (để tránh bị từ chối) là có một phương thức loadAccount(), nơi bạn lấy tài khoản từ db bất cứ khi nào bạn cần nó ... WORST!)
Tôi không nghĩ rằng:
Contexts.getConversationContext().set("myVarName", myVar)
là một phương pháp để tránh bị từ chối.
Điều này chỉ gọi cùng một ngữ cảnh mà biến bị loại bỏ được lưu và sửa đổi nó theo một cách sâu sắc (tôi nghĩ đó chính xác là những gì @Out làm trong nền).
Câu hỏi 1: Bạn nghĩ gì về ý định của họ? Bạn có thông tin cụ thể về cách họ sẽ thay thế nó?
Câu hỏi 2: Làm cách nào để tránh sử dụng tính năng loại bỏ?
Xin cảm ơn trước.
hi, bạn có thể cho tôi biết cách đạt được dưới đây trong đường may 3 ?? Contexts.getConversationContext(). Set ("myVarName", myVar) –