xpages - XPages:一个模板,两个内存模型?
问题描述
我想为我们的 XPages 应用程序维护一个单一的主模板,尽管它具有 2 个不同的内存模型和属性。开发模板的模型(主)应该在磁盘上,没有 JS 优化和 dojo 压缩。派生模板中的模型,要在客户端应用程序中使用,我们配置为内存,优化的JS和压缩的dojo。
当在每个模板中设置不同的配置参数然后刷新派生模板的设计时,两个模板最终都相同(这似乎合乎逻辑)。我的意思是:不可能禁止刷新 XSP 设置,就像可以在其他元素上设置一样。
但即使有这种可能性,它也不会起作用,因为一切都应该重新编译(“干净”),否则压缩的 JS 和 css 不会正确生成。我发现无法自动在派生模板上开始编译。
或者有什么办法吗?
谢谢!
解决方案
源代码控制和分支应该是处理它的正确方法:https ://www.ibm.com/support/knowledgecenter/en/SSVRGU_9.0.0/com.ibm.designer.domino.ui.doc/wpd_srcecontrol_top.html
老式的方法是“分支”你的模板。XSP 开发的主模板,第二个模板继承自第一个模板。在第二个模板中,为 XSP.properties 设计元素设置“禁止设计刷新或...”属性。然后更改其内容以满足您的需求。
这是故事
曾几何时,有一个开发人员团队在开发多个数据库,其中一些被标记为模板,以便进一步部署到生产环境中。一位开发人员想重用另一个数据库中的一些元素 - 模板。复制并粘贴到另一个数据库中。设计师提示:“你想从模板继承设计......?”。嗯,没有。所以设计师没有用模板名称标记设计元素,没关系。此外,设计师设置了“禁止设计刷新......”标志。没有人注意到,直到发布日!新应用程序的行为很奇怪,有些部分得到了更新,有些没有。很容易发现设置了“禁止...”标志并修复它。但诡异还在继续。你猜怎么着?此标志设置在设计者 GUI 中没有此类复选框的元素上(在本例中为 Java 源代码)。
什么有效
创建显示设计元素的特殊视图http://www-10.lotus.com/ldd/ddwiki.nsf/dx/view-of-design-elements.htm。
创建另一列显示禁止刷新的元素。设置“将值显示为图标”。
"Prohibit design refresh or replace to modify";
@If( @Contains( $Flags; "P" ); 80; 0 ) : @If( @Contains( $Flags; "r" ); 204; 0 )
创建一个使用选定文档的视图操作(ss.CurrentDatabase.UnprocessedDocuments
用于勾选的文档,uiv.CaretNoteID
仅GetDocumentByID
用于聚焦的文档)并调用此代码以重置标志。
Sub Prohibit(note As NotesDocument)
On Error Goto errHandler
Dim flags As String
Dim flagsNew As String
flags = note.GetItemValue( "$Flags" )(0)
flagsNew = Replace( flags, "P", "" )
If flags <> flagsNew Then
note.ReplaceItemValue "$Flags", flagsNew
note.Save True, False
End If
Exit Sub
errHandler:
Print "Error on " & note.UniversalID & " (" & note.GetItemValue( "$Title" )(0) & ")"
Exit Sub
End Sub
免责声明:在某些情况下,这会破坏元素的签名 - 整个数据库的强制签名会修复它。
注意:关于继承的提示 - 如果您在从模板复制到模板时回答“否”,它会设置标志“禁止...” - 即使它是同一个数据库!
结论
所以,在你的情况下,做相反的事情 - 只需通过添加"P"
到文件$Flags
字段来设置标志XSP.properties
。顺便说一句,它的$TITLE
字段是"WEB-INF/xsp.properties"
.
享受!
推荐阅读
- git - jenkins does not trigger build when a new tag is pushed on the same commit
- dom - Testcafe Selector 用于识别 DOM 结构特定组件内的元素
- apple-push-notifications - 如何使用 ios 日历内置应用程序和不使用应用程序使用苹果推送通知
- python - 根据值创建具有数组索引的数组
- azure-devops - 如何构建 Docker 镜像然后使用构建的镜像运行测试
- vba - 表中的不同部分(多个空行)。创建一个条件循环,将空行输入到正确的部分 - VBA
- python - 如何在字典中添加双引号?
- c# - 当月列不超过1个月时如何抑制水晶报表页脚
- python-3.x - 我可以使用 twitter api 进行选择投票吗?tweepy有什么方法吗?
- javascript - 在可下载文件中添加换行符