2013-03-22 19 views

Trả lời

4

Bạn không thể chặn các phần cụ thể của faces-config.xml trong JAR của bên thứ ba khỏi bị diễn giải.

Bạn có về cơ bản 2 lựa chọn:

  1. Khối cả faces-config.xml trong một JAR bên thứ 3 từ được giải thích bằng cách thêm metadata-complete="true" để webapp của riêng faces-config.xml.

    <faces-config ... metadata-complete="true"> 
    

    Lưu ý rằng điều này cũng bỏ qua chú thích quét trong các lớp của JAR của bên thứ ba. Về cơ bản bạn cần phải xác định lại các phần cụ thể mà bạn muốn sử dụng trong trang web faces-config.xml của webapp.


  2. Cung cấp một tùy chỉnh Lifecycle thực hiện qua LifecycleFactory mà bạn đăng ký trong <factory><lifecycle-factory> của webapp của faces-config.xml. Trong triển khai đó, ghi đè addPhaseListener() tương ứng để thực hiện ví dụ: một kiểm tra instanceof trước khi bỏ qua hoặc tiếp tục.

+0

tùy chọn 2 có lẽ là điều đơn giản nhất đối với tôi khi xem xét có nhiều thư viện của bên thứ ba khác mà tôi muốn hoạt động đúng cách. – cyberoblivion

+0

Tùy chọn thứ ba, ngoài tầm kiểm soát của bạn, sẽ đăng yêu cầu tính năng cho nhà cung cấp thư viện mà người nghe giai đoạn phải bỏ qua công việc của mình khi, ví dụ: một tham số ngữ cảnh nhất định, hoặc tham số yêu cầu, hoặc thuộc tính phiên, hoặc thậm chí một biến môi trường có mặt, tùy thuộc vào công việc/trách nhiệm thực tế của người nghe giai đoạn. – BalusC

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