您正在尋找存儲和維護一個菜單JSON數據的地方。
您可以使用服務器端JavaScript庫來實現此目的。
將您的菜單定義分配給一個變量。 這樣你就可以得到一個語法控制,你不需要解析JSON字符串,因爲它已經是一個JavaScript數組/對象。
例子:
服務器端JavaScript庫 「menu.jss」:
var menu = [
{
"mnuNme": "by Author",
"mnuTyp": "1",
"mnuTrg": "xpNavigator3"
},
{
"mnuNme": "by Location",
"mnuTyp": "1",
"mnuTrg": "xpView02"
}
];
的XPage
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.resources>
<xp:script
src="/menu"
clientSide="false">
</xp:script>
</xp:this.resources>
<xp:repeat
id="repeat1"
rows="0"
var="entry"
value="#{javascript:menu}">
<xp:text
escape="true"
id="computedField1"
value="#{entry.mnuNme}">
</xp:text>
<br />
</xp:repeat>
</xp:view>
這完美地工作! –
對此有一點小心 - 你正在使用一個全局變量 - 取決於你的持久化設置/服務器性能/等 - 在某些時候,這個全局變量可能變得未定義,因爲垃圾收集/和/或如果頁面被寫入磁盤持久性。全球性的JavaScript服務器端變量應該被認爲是一個no-no。例如,你可以創建一個名爲menu()的函數來返回字符串的內容,然後在你的值中調用menu()(即value =「#{javascript:return menu( );}「並且它會比較安全。 –