首頁 > web前端 > js教程 > 如何從本機 JavaScript HTML DOM 事件觸發 JSF 託管 Bean?

如何從本機 JavaScript HTML DOM 事件觸發 JSF 託管 Bean?

Patricia Arquette
發布: 2024-12-08 16:00:23
原創
439 人瀏覽過

How Can I Trigger a JSF Managed Bean from a Native JavaScript HTML DOM Event?

使用本機JavaScript 在HTML DOM 事件上呼叫JSF 託管Bean

在使用本機的HTML DOM 事件期間操作JavaServer Faces託管Bean JavaScript可以透過多種方法來實現。雖然 jQuery 透過其 $(document).ready() 函數提供了一個簡單的解決方案,但 JSF 提供了與其框架無縫整合的不同方法。

使用 h:commandScript (JSF 2.3) h3>

元件允許在 JavaScript 中執行 bean 操作,而無需依賴 jQuery 等外部函式庫。它會建立一個 JS 函數,可以透過設定 autorun="true" 在 DOM 載入事件期間手動或自動呼叫該函數。例如:

<h:form>
    <h:commandScript name="commandName" action="#{bean.action}" render=":results" autorun="true" />
</h:form>
登入後複製

使用p:remoteCommand (PrimeFaces)

PrimeFaces 提供了,這是一個與其無縫集成的組件基於jQuery 的Ajax 引擎。與相比,它使用jQuery來觸發Ajax請求。

<h:form>
    <p:remoteCommand name="commandName" action="#{bean.action}" update=":results" autoRun="true" />
</h:form>
登入後複製

使用o:commandScript (OmniFaces)

如果您的應用程式使用OmniFaces,您可以將 替換為使用,它提供相同的功能,但與舊的JSF 2.x 版本相容。

<o:form>
    <o:commandScript name="commandName" action="#{bean.action}" render=":results" autorun="true" />
</o:form>
登入後複製

隱藏表單技巧

另一個該選項涉及「隱藏表單」技巧,其中包含指令按鈕的表單呈現在頁面上,但使用CSS隱藏。可以使用 JavaScript 的 onclick() 方法觸發按鈕。

<h:form>
登入後複製
document.getElementById("form:button").onclick();
登入後複製

自訂UIComponent

對於進階場景,您可以建立自訂UIComponent擴充產生JSF 的本機jsf.ajax.request( ) 呼叫的UICommand。這種方法提供了對 Ajax 行為的完全自訂和控制。

以上是如何從本機 JavaScript HTML DOM 事件觸發 JSF 託管 Bean?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板