[英]Xpage, createForm=false disables SSJS events on links?
我在這里要清楚這一點:我意外地將createForm屬性設置為false。 然后,我期望一個鏈接事件應該打開另一個頁面,只是不再運行。 這是SSJS事件的預期行為,例如在禁用表單創建時的鏈接中嗎?
正如Per提到的,所有事件都需要一個表單:如果它們是完全刷新的,那么頁面需要一個表單來發布以觸發重定向; 如果它們是部分刷新,則表單確定AJAX POST的內容。
XPage運行時包括對表單組件的支持,但它不包含在組件面板中(並且無法通過Designer首選項添加),因此將其添加到頁面的唯一方法是直接編輯源XML。 例如:
<xp:form>
<xp:link id="exampleLink" text="Example Text">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action><![CDATA[#{javascript:// event code}]]></xp:this.action>
</xp:eventHandler>
</xp:link>
</xp:form>
這個組件有用(至少)有兩個原因:
createForm
設置為false
時createForm
的鏈接應該將用戶導航到另一個頁面; 因此,此事件可能不需要知道任何字段值,因為用戶無論如何都要離開當前頁面。 如果這是真的,請以自己的形式包裝此鏈接,並在單獨的表單中包含任何字段,並且鏈接將稍微快速執行,因為瀏覽器不必發布任何字段數據...只是鏈接本身的標識符。 所以有許多用例,在XPage上使用一個或多個表單組件實際上是更好的...只要記住所有數據和事件必須在表單內 - 無論是通常包含所有內容的默認表單,還是手動包含表單組件 - 並且表單不能嵌套。 您可以根據需要添加任意數量的表單組件,但它們必須是兄弟姐妹 。 任何表格都不能包含其他表格。
是的,因為您正在進行HTTP POST請求並且需要表單。
您可以將POST請求鏈接轉換為GET請求鏈接,而不是刪除SSJS事件並創建“基本”鏈接:
<xp:link escape="true" text="Link" id="link2" value="/somepage.xsp"></xp:link>
但是如果你需要SSJS邏輯,那么你還需要一個表格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.