Tôi đang cố gắng ghi đè trình kết xuất cho h:selectBooleanCheckbox
(vì lý do được giải thích here):JSF 2.0: Làm cách nào để ghi đè lên trình kết xuất cơ sở bằng trình tùy chỉnh?
Tuy nhiên, tôi thấy không thể đăng ký trình kết xuất của tôi. Tôi đã cố gắng tuyên bố nó trong tôi faces-config.xml
:
<render-kit>
<renderer>
<component-family>javax.faces.SelectBoolean</component-family>
<renderer-type>javax.faces.Checkbox</renderer-type>
<renderer-class>com.myapp.CustomCheckboxRenderer</renderer-class>
</renderer>
</render-kit>
Các giá trị Tôi túm lấy từ:
- thành phần gia đình:
javax.faces.component.html.HtmlSelectBooleanCheckbox
- renderer-type:
javax.faces.component.html.SelectBooleanCheckboxTag
Nhưng nó doesn 't làm việc.
Tôi cũng đã cố gắng một cách chi tiết tuyên bố RenderKit
:
<description>Custom renderers</description>
<render-kit-id>???</render-kit-id>
<render-kit-class>com.sun.faces.renderkit.RenderKitImpl</render-kit-class>
Nhưng như bạn thấy, tôi không thực sự biết được nơi để lấy giá trị cho render-kit-id
hoặc nếu render-kit-class
là đúng anyway.
Bên trong gói Mojarra có tệp jsf-ri-runtime.xml
nhưng không khai báo trình kết xuất đồ họa. Nó chỉ tuyên bố một RenderKitFactory
, theo đó tôi không trực tiếp tìm thấy bất cứ điều gì quan tâm.
Con trỏ?
Không liên quan đến vấn đề này, tại sao bạn lại sử dụng các giá trị không phải là boolean làm giá trị của một 'selectBooleanCheckbox'? Làm thế nào một đối tượng phi boolean đại diện cho một trạng thái boolean? – BalusC
Hmm, bạn nói đúng, nó hoạt động. Tôi đã không thử nghiệm với các phương thức mã hóaXXX trước đây, tôi chỉ thiết lập điểm ngắt cho phương thức 'getConvertedValue' của trình kết xuất tùy chỉnh, mà không được gọi. Lý do cho rằng có thể là chủ đề của một câu hỏi hoàn toàn khác nhau, tuy nhiên. Dù sao, bạn có biết nếu có một danh sách cho các thành phần JSF, các kiểu kết xuất và gia đình của họ ở đâu đó, hay chúng ta phải luôn điều hướng đến các lớp của chúng và tìm kiếm các biến này? –
Đó là sự kết hợp của bảng 8.1 trong thông số JSF 2.0 và ['COMPONENT_FAMILY'] (http://download.oracle.com/javaee/5/api/constant-values.html#javax.faces.component.UISelectBoolean.COMPONENT_FAMILY) giá trị trường không đổi trong tài liệu API JSF 2.0. Cuối cùng, chương 4.1.x của đặc tả JSF 2.0 có thể được tư vấn cho cả hai. – BalusC