xPages中的文件上载验证

Fre*_*red 1 validation xpages

根据这篇文章 http://www-10.lotus.com/ldd/ddwiki.nsf/revisions/6A9EDD911827AA13852574EA00388F8F?OpenDocument 简单验证应该适用于文件上传控件.我试图在extLib Form表中使用它.

我想验证用户是否选择了一个文件,但是无法让它在服务器端验证上工作.也试过使用自定义验证器,但仍然没有运气.其他必填字段标记为正常,但不是上传控件.

有谁知道如何验证用户实际选择了一个文件?

Sve*_*ach 5

验证仅适用于客户端验证.有一些解决方法:

  1. 验证文件是否附加的最简单方法是向表单添加验证字段,并设置数据源的属性computeWithForm ="onsave".只要您想保存文档,就会抛出验证错误并中断保存.的验证字段是具有验证公式这样一个简单的可编辑字段:

    @If(@Attachments = 0;@Failure("No File attached!");@Success)
    
    Run Code Online (Sandbox Code Playgroud)
  2. querySave事件中检查您的数据源:

    if( document1.getAttachmentList("Body").isEmpty() ){
        var msg = new javax.faces.application.FacesMessage("No File added!");
        facesContext.addMessage( "No File!", msg );
        return false;
    }
    
    Run Code Online (Sandbox Code Playgroud)

这两个解决方法仅在新创建文档时才有效.一旦附加了文件,这两个选项就不再起作用了.

如果您想检查现有文档,可以在此处使用此XSnippet:http://openntf.org/XSnippets.nsf/snippet.xsp?id = replace-attachment-when-uploading-a-new-attachment

然后,您必须修改XSnippet以满足您的要求并添加消息(如第二个示例所示).

希望这可以帮助

斯文