Trong JSF/app Facelets của tôi, đây là một phiên bản đơn giản của một phần của hình thức của tôi:Làm thế nào để hiển thị lỗi ứng dụng của tôi trong JSF?
<h:form id="myform">
<h:inputSecret value="#{createNewPassword.newPassword1}" id="newPassword1" />
<h:message class="error" for="newPassword1" />
<h:inputSecret value="#{createNewPassword.newPassword2}" id="newPassword2" />
<h:message class="error" for="newPassword2" />
<h:commandButton value="Continue" action="#{createNewPassword.continueButton}" />
</h:form>
Tôi muốn để có thể gán một lỗi đến một h cụ thể: Thẻ thông điệp dựa trên một cái gì đó xảy ra trong phương thức continueButton(). Các lỗi khác nhau cần được hiển thị cho newPassword và newPassword2. Trình xác thực sẽ không thực sự hoạt động, bởi vì phương thức sẽ cung cấp kết quả (từ DB) được chạy trong phương thức continueButton() và quá đắt để chạy hai lần.
Tôi không thể sử dụng thẻ h: messages vì trang có nhiều địa điểm tôi cần để hiển thị các thông báo lỗi khác nhau. Khi tôi thử điều này, trang hiển thị bản sao của mọi thư.
tôi đã cố gắng này như một đoán tốt nhất, nhưng không có may mắn:
public Navigation continueButton() {
...
expensiveMethod();
if(...) {
FacesContext.getCurrentInstance().addMessage("newPassword", new FacesMessage("Error: Your password is NOT strong enough."));
}
}
tôi thiếu gì? Bất kỳ trợ giúp sẽ được đánh giá cao!
Tôi biết rằng nó không bị mất vì các h: thẻ thông điệp spits ra lỗi tốt ... Tôi chỉ không biết làm thế nào để cân bằng tỉ số lỗi để một h: thẻ thông điệp cụ thể. Thay đổi id cũng không giúp được gì. –