这里发生了什么?
您看到的是数据库列表中选择项的默认值,因为它存储在“协议”对象的模板页面中。
一个新的数据库列表被初始化为显示一个博客文章列表,默认值为Blog.BlogPostClass
“XWiki 类名”。(您可以通过在步骤 2 中创建一个新Database List
字段并打开该字段的编辑视图来尝试此操作;完成后将其删除。)对于新安装的 wiki,有两个博客文章:“博客页面模板”Blog.BlogPageTemplate
和博客介绍帖子在Blog.BlogIntroduction
. 最初显示的正是这两个项目。
在“XWiki 类名”字段中填写类的值后,XWiki 有机会找到可能值的实际列表。但是,它会保留第一次尝试时选择的“默认值”(即使它没有意义)。
至少从用户体验来看,这对我来说似乎是一个错误。
如何修复它
第一步:您的列表仅包含虚假“默认值”的原因可能是您提供的类不存在。从我在截图中看到的类名对我来说看起来不错,但是这个字段不能容忍任何类型的拼写错误,即使是类名前的空格。如果名称不完全匹配,它会给出一个(几乎)空列表。
如果您无法使用类名并希望转而使用 HQL 路线,请使用 HQL 字段
, BaseObject as obj where doc.fullName = obj.name
and obj.className = 'VendorCode.VendorClass'
and doc.fullName != 'VendorCode.VendorTemplate'
和doc.fullName
作为id
和value
领域。这有一个额外的好处,模板供应商在下拉列表中不可用,只有“真实”对象。
在您设法修复类的名称后,您应该会看到所有供应商对象的列表(包括VendorCode.VendorTemplate
,除非您使用 HQL 路线),以及剩余的虚假默认值。现在您可以继续下一步:
第二步:如果您设法修复了类名,您将在默认值旁边的下拉列表中看到您的供应商;现在是时候摆脱虚假的默认值了。为此,转到应用程序的模板对象;例如
- 按照“协议”应用程序起始页上的“编辑应用程序”链接
- 然后查看字段定义下方带有三个复选框的框;最上面的复选框显示“更新类模板”
- 这部分包含一个名为“ProtocolTemplate”的链接。
- 单击链接,您最终会进入模板页面
- 在模板页面上,单击编辑并从供应商下拉列表中选择一些其他值,然后单击保存。
“BlogSomething”值现在应该从供应商的选择中消失。
可选步骤(不回答问题,但无论如何可能会感兴趣)
如果您希望模板中没有预选任何值,则需要更多步骤:
- 在应用程序编辑中,编辑字段并选择“多选”并显示类型“复选框”
- 转到编辑器中的“下一步”,然后使用“上一步”返回字段编辑
- 取消选中所选供应商条目旁边的复选框,然后打开字段编辑器并将“显示类型”设置回复选框并取消设置“多选”复选框。
- 进行“下一步”和“完成”
之后,如果您创建一个新的“协议”条目,则会预先选择一个空的“供应商”。