小编par*_*anz的帖子

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万
查看次数

标签 统计

file-upload ×1

jsf ×1

jsf-2 ×1

primefaces ×1

validation ×1