簡體   English   中英

如何使用RichFaces a4j:commandButton不使用submit

[英]How to use RichFaces a4j:commandButton not using submit

我有一個a4j:commandButton ,看起來像這樣

    <a4j:commandButton id="stopBtn" type="button" reRender="lastOp"
  action="#{MyBacking.stop}" value="Stop" />
 </a4j:commandButton>

部署應用程序並單擊按鈕時,不會調用stop()方法。 所有a4j:commandButton示例都引用表單,但此按鈕不在表單中 - 它是用戶將用於使服務器運行某些后端邏輯的按鈕。 目前,方法是

    public void stopNode() {
 logger.info("STOPPING");
 setLastOp("Stopped.");
}

不使用這種類型按鈕的其他方法是更新lastOp字段,但我沒有在控制台上看到任何這個。 我是否正確將其作為按鈕投射? 我應該把它放在一個h:form標簽中嗎?

firebug控制台說:

this._form is null

我不明白。

任何幫助很好的贊賞。

UICommand組件應該放在UIForm組件中。 所以,你的猜測

我應該把它放在一個h:form標簽中嗎?

完全正確:)這是因為它們觸發了一個POST請求,唯一的(正常)方式是使用一個HTML <form>元素,其method屬性設置為"post" Firebug還表示期望父表單元素,但它解析為null ,因此不能執行任何操作。

只有像h:outputLinkh:outputLink這樣的“普通香草”鏈接不需要表單,因為它們只是觸發GET請求。

是的,將其包裹在表格中。 我確定BalusC會在我輸入答案時發布詳細解釋。 (是的,那里)

在發布之前,我不得不問你為什么不先嘗試表格。

看看你的代碼:

<a4j:commandButton id="stopBtn" type="button" reRender="lastOp" action="#{MyBacking.stop}" value="Stop" /> 

你用/>完了<a4j:commandButton ,為什么需要那個orphan </a4j:commandButton>

如果由於某種原因您不想將按鈕放在表單中,您可以執行以下操作:

<a4j:commandButton onclick="fireAjax()"/>

<h:form>
   <a4j:jsFunction name="fireAjax" action=".."/>
</h:form>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM