gpt4 book ai didi

jsf - 有没有办法避免 JSF 捕获 Bean 验证方法中引发的异常并像处理其他 Bean 方法中引发的异常一样处理它们?

转载 作者:行者123 更新时间:2023-12-04 15:04:26 25 4
gpt4 key购买 nike

在我正在工作的 JSF 项目中 Beans 抛出的异常通常由 JSF 将用户重定向到错误页面来处理,但是当它们在 Bean 验证方法中引发时,JSF 会处理它们以相对 <h:message> 显示而是标记异常消息。

我希望验证方法中引发的异常被处理为从 Bean 引发的其他异常。有没有办法做到这一点?

我正在使用的验证类型是通过支持 bean 验证器方法,例如在 JSF 页面中:

<h:inputText value="#{Bean.field}" validator="#{Bean.validate}" />

并且,在支持 bean 代码中:
public void validate(FacesContext context, UIComponent component, Object value){
// validation logic here
}

谢谢,安德里亚

最佳答案

这是“设计使然”。

将该验证器转换为实现 Validator 的完整类. ValidatorException 以外的任何异常(exception)情况扔在那里将导致 HTTP 500 错误页面。

例如。

public class MyValidator implements Validator {

public void validate(FacesContext context, UIComponent component, Object value) {
// validation logic here
}

}

您注册为 <validator>faces-config.xml
<validator>
<validator-id>myValidator</validator-id>
<validator-class>com.example.MyValidator</validator-class>
</validator>

并在输入中使用如下
<h:inputText ... validator="myValidator" />

或者
<h:inputText ...>
<f:validator validatorId="myValidator" />
</h:inputText>

关于jsf - 有没有办法避免 JSF 捕获 Bean 验证方法中引发的异常并像处理其他 Bean 方法中引发的异常一样处理它们?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9735558/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com