2012-10-04 32 views
8

tôi có h: thông báo hiển thị thông báo lỗi và có một thành phần mà tôi muốn kiểu thay đổi trong trường hợp xảy ra lỗi xác thực (nếu thành phần có lỗi xác thực hoặc thông báo xác thực được hiển thị thì thay đổi phong cách của thành phần cụ thể này).Kiểu có điều kiện trong JSF

tôi biết về cách thức để thay đổi phong cách nếu các thành phần có lỗi xác nhận: JSF : Better way to check for existence of <h:message for="id"/>

nhưng tôi muốn có một cách tổng quát hơn, để thay đổi phong cách nếu bất kỳ thành phần theo hình thức không hợp lệ, hoặc trong khác từ bất kỳ thông báo xác thực nào được hiển thị.

hãy tư vấn cách thực hiện điều đó.

Trả lời

17

Bạn có thể sử dụng FacesContext#isValidationFailed() để kiểm tra xem xác thực có thất bại nói chung hay không.

<h:outputText ... styleClass="#{facesContext.validationFailed ? 'fail' : 'success'}" /> 

Hoặc, bạn có thể sử dụng FacesContext#getMessageList() để kiểm tra xem có bất kỳ thông báo nào không. Điều này không nhất thiết cho thấy một thất bại xác nhận chung, có thể cũng có thể là toàn cầu/thông điệp thành công được thêm vào trong phương thức hành động.

<h:outputText ... styleClass="#{not empty facesContext.messageList ? 'hasmessage' : 'nomessage'}" /> 
Các vấn đề liên quan