相关疑难解决方法(0)

如何在JSF中显示我的应用程序错误?

在我的JSF/Facelets应用程序中,这是我表单的一部分的简化版本:

<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>
Run Code Online (Sandbox Code Playgroud)

我希望能够根据continueButton()方法中发生的事情为特定的h:message标记分配错误.需要为newPassword和newPassword2显示不同的错误.验证器不会真正起作用,因为将传递结果的方法(来自DB)在continueButton()方法中运行,并且运行两次太昂贵.

我无法使用h:messages标记,因为该页面有多个地方需要显示不同的错误消息.当我尝试这个时,页面显示每条消息的重复.

我试过这个是最好的猜测,但没有运气:

public Navigation continueButton() {
  ...
  expensiveMethod();
  if(...) {
    FacesContext.getCurrentInstance().addMessage("newPassword", new FacesMessage("Error: Your password is NOT strong enough."));
  }
}
Run Code Online (Sandbox Code Playgroud)

我错过了什么?任何帮助,将不胜感激!

error-handling jsf facelets

40
推荐指数
3
解决办法
15万
查看次数

标签 统计

error-handling ×1

facelets ×1

jsf ×1