相关疑难解决方法(0)

如何使用@EJB,@ PersistenceContext,@ Inject,@ Autowired注入@FacesValidator

我怎么可以注入的依赖一样@EJB,@PersistenceContext,@Inject,@AutoWired,等的@FacesValidator?在我的具体情况下,我需要通过以下方式注入Spring托管bean @AutoWired:

@FacesValidator("emailExistValidator")
public class EmailExistValidator implements Validator {

    @Autowired
    private UserDao userDao;

    // ...
}
Run Code Online (Sandbox Code Playgroud)

然而,它没有被注射,它仍然存在null,导致java.lang.NullPointerException.看来@EJB,@PersistenceContext并且@Inject也不起作用.

如何在验证器中注入服务依赖项以便我可以访问数据库?

validation spring dependency-injection service-layer jsf-2

31
推荐指数
1
解决办法
1万
查看次数

如何仅在完成成功的表单提交时显示对话框

我有一个包含2个必填输入字段的表单和一个显示对话框的命令按钮:

<p:commandButton id="showDialogButton" value="Enregistrer" 
    action="#{DEQbean.Ajouter()}" update="@form"
    oncomplete="dialogaboutDEQ.show()" />

<p:dialog id="reamrquesDEQ" widgetVar="dialogaboutDEQ" header="Informations"
    width="400" closable="false" resizable="false" showEffect="clip"
    hideEffect="clip" modal="true" appendToBody="true">

    <p:messages id="messages" showDetail="true" autoUpdate="true"/>
    <p:commandButton value="OK" action="DEQlist" />    
</p:dialog>  
Run Code Online (Sandbox Code Playgroud)

我想仅在验证通过并执行action方法时才显示对话框.但是,当所需的输入字段为空并且因此未执行操作方法时,仍会显示该对话框.

如何在完成成功的表单提交后才显示对话框?

validation jsf dialog primefaces

13
推荐指数
1
解决办法
2万
查看次数

PrimeFaces <p:fileUpload mode ="advanced">验证器未触发

由于fileLimit不存在于primefaces 3.4中,我正在尝试围绕实现验证器,问题是从不调用方法validate.那是我的验证者:

@FacesValidator(value ="fileLimitValidator")
public class FileLimitValidator implements Validator {

    @Override
    public void validate(final FacesContext context, final UIComponent component,
            final Object value) throws ValidatorException {

        final String fileLimit = (String)component.getAttributes().get("fileLimit");
        final String size = (String)component.getAttributes().get("size");

        if (fileLimit!=null && size!=null) {
            if (Integer.valueOf(size) >= Integer.valueOf(fileLimit)) {
                FacesUtils.throwErrorExceptionFromComponent(component,"fichero_confidencialidad_error");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的脸上,我试过了:

    <p:fileUpload id="#{id}FileUpload"
        fileUploadListener="#{bean[metodoTratarFichero]}" mode="advanced"
        multiple="true" allowTypes="#{allowTypes}" showButtons="false"
        update="#{id}ListaDocs #{id}MsgError" auto="true"
        label="#{fileuploadmsg.label_boton}"
        invalidFileMessage="#{fileuploadmsg.tipo_incorrecto}" >

        <f:validator validatorId="fileLimitValidator"/>
        <f:attribute name="fileLimit" value="#{fileLimit}"/>
        <f:attribute name="size" value="#{listaDocumentos.size}"/>
    </p:fileUpload>
Run Code Online (Sandbox Code Playgroud)

和:

    <p:fileUpload id="#{id}FileUpload"
        fileUploadListener="#{bean[metodoTratarFichero]}" mode="advanced"
        multiple="true" allowTypes="#{allowTypes}" …
Run Code Online (Sandbox Code Playgroud)

validation jsf file-upload primefaces jsf-2

11
推荐指数
1
解决办法
1万
查看次数

如何在JSF中执行验证,如何在JSF中创建自定义验证器

我想在我的一些输入组件中执行验证,例如<h:inputText>使用一些Java bean方法.我应该使用<f:validator>或<f:validateBean>为此吗?我在哪里可以阅读更多相关信息?

validation jsf javabeans jsf-2

7
推荐指数
1
解决办法
1万
查看次数

如何在JSF中有条件地要求表单字段?

假设我有一个h:form包含三个字段和两个提交按钮的。例如,提交按钮是Display Report和Generate Data。为简单起见,我宁愿只有一种而不是多种形式。当Display Report 时,需要三个字段中的值作为报告呈现的标准。所以我将它们标记为required="true"but 禁用了Generate Data的执行,它不需要这三个字段。

有没有办法让 JSF 表单字段有条件地要求而无需太多自定义编码,例如requiredIf=#{condition}?

validation jsf

1
推荐指数
1
解决办法
7547
查看次数