gpt4 book ai didi

java - JSF 2.0 验证 Controller

转载 作者:行者123 更新时间:2023-11-29 10:07:39 26 4
gpt4 key购买 nike

我是 JSF/Java 的新手,但我想知道是否有人知道创建自定义验证 Controller 的好方法。我的 Web 应用程序中有很多表单,其中的字段重叠,例如名字、SSN 或电子邮件。我想创建一个 Controller 来处理所有这些验证和消息。

这是个好主意吗?我一直在网上查看文档,但看起来我发现的每个示例都将验证方法放在特定的 bean 中而不是 Controller 中。

任何示例/示例链接/关于实现此类内容的好方法的建议都会很棒。

我正在使用 JSF 2.0

最佳答案

这不是正常的做法。您应该将控制任务委托(delegate)给 FacesServlet .它的工作做得很好。如果您想要的只是将验证与托管 bean 分离,那么只需创建一个实现 javax.faces.validator.Validator 的独立类即可。 .要让它自动加载,只需用适当的 @FacesValidator 标记它。注释。

这是一个启动示例:

package com.example;

import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

@FacesValidator(value="ssnValidator")
public class SSNValidator implements Validator {

@Override
public void validate(FacesContext context, UIComponent component, Object value) throws ValidatorException {
// Implement as you did originally in the bean method.
}

}

你可以声明为 <f:validator> 在任何 UIInput组件如下:

<h:inputText value="#{bean.ssn}">
<f:validator validatorId="ssnValidator" />
</h:inputText>

关于java - JSF 2.0 验证 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3523998/

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