Xpages 公共访问查找失败

Xpages 公共访问查找失败,xpages,Xpages,“我的数据库”的ACL已将“匿名”设置为“无访问权限”,并已设置“读取公共文档”。我有一个设置为公共访问的Xpage。该页面显示良好,无需登录,但本应根据从视图中查找的文档中的字段显示消息的页面除外。如果打开xPage的公共访问,则查找失败。如果我关闭xPage的公共访问,那么当然会要求我登录以显示页面,但页面上会显示消息 这是我使用的公式。我对其进行了一些修改,以帮助解决此问题。对于xPage集的公共访问,代码显示一个“4”(在视图中找不到文档) 我已为设置视图和显示设置视图的窗体设置了公共访

“我的数据库”的ACL已将“匿名”设置为“无访问权限”,并已设置“读取公共文档”。我有一个设置为公共访问的Xpage。该页面显示良好,无需登录,但本应根据从视图中查找的文档中的字段显示消息的页面除外。如果打开xPage的公共访问,则查找失败。如果我关闭xPage的公共访问,那么当然会要求我登录以显示页面,但页面上会显示消息

这是我使用的公式。我对其进行了一些修改,以帮助解决此问题。对于xPage集的公共访问,代码显示一个“4”(在视图中找不到文档)

我已为设置视图和显示设置视图的窗体设置了公共访问权限。PasswordChangeSuccess字段是richtext/MIME字段


我还尝试在表单上添加$PublicAccess,但没有成功。知道哪里出了问题吗?

e.message会给您错误消息,请将其添加到输出中。我的赌注是无法进入。试试这个:

    var vw:NotesView = database.getView("Setup");
    if (vw == null ) {
        print("Failed to get the view");
        return "NULL view encountered";
    }
    print("View is valid");

    var doc:NotesDocument = vw.getDocumentByKey("Setup",true);

   if (doc == null) {
      print("Doc could not be obtained");
      return("Doc could not be obtained");
   }

   // Only here the fun starts!

  try {
       return "1"+doc.getFirstItem("PasswordChangeSuccess").getMIMEEntity().getContentAsText();
  } catch (e) {
    print("MIME failed:" +e.message);
    try {
         return "2"+doc.getFirstItem("PasswordChangeSuccess").getText();
    } catch (e) {
      print(e.message);
      return e.message;     
    }

 }
 // If you got here, what happened?
 return("Miracle");
您还应该删除Java/C格式设置首选项。在JavaScript中,行结尾具有重要意义。所以

 function bla()
 {

 }
处理方式不同于

 function bla() {

 }

至少还有一个额外的行结尾需要自动插入分号处理步骤。在Java/C中,这是一个编码品味的问题(取决于您)。在JavaScript中,它会影响处理。

解决了这个问题。虽然$PublicAccess字段位于表单上,但未对其进行计算。现在似乎一切正常。

请验证表单本身没有定义acl,并且数据在reader/authors字段中的值是否正确您的文档是否有$PublicAccess字段?@jjbsomhorst-表单已设置为所有reader及更高版本。没有特别的安全措施。@Sven-看看我文章的最后一行。@BruceStemplewski:我已经读了你的最后一行。你说的是表单,我说的是存储在数据库中的文档。我得到的文档不能像我在帖子中提到的那样显示。我有相关的后续信息,我将在另一篇文章中为XPages添加.Ol'陷阱。只有在将数据源设置为使用表单进行计算时,表单中才有相关内容。我不再经常使用表单了
 function bla() {

 }