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

vol*_*vox 2 java jsf richfaces

我有一个a4j:commandButton看起来像这样的

    <a4j:commandButton id="stopBtn" type="button" reRender="lastOp"
  action="#{MyBacking.stop}" value="Stop" />
 </a4j:commandButton>
Run Code Online (Sandbox Code Playgroud)

部署应用程序并单击按钮时,不会调用stop()方法.所有a4j:commandButton示例都引用表单,但此按钮不在表单中 - 它是用户将用于使服务器运行某些后端逻辑的按钮.目前,方法是

    public void stopNode() {
 logger.info("STOPPING");
 setLastOp("Stopped.");
}
Run Code Online (Sandbox Code Playgroud)

不使用这种类型按钮的其他方法是更新lastOp字段,但我没有在控制台上看到任何这个.我是否正确将其作为按钮投射?我应该把它放在h:form标签里吗?

firebug控制台说:

this._form is null
Run Code Online (Sandbox Code Playgroud)

我不明白.

任何帮助很好的赞赏.

Bal*_*usC 7

UICommand组件应该放在UIForm组件内.所以,你的猜测

我应该把它放在h:form标签里吗?

完全正确:)这是因为它们触发了一个POST请求,唯一的(正常)方式就是使用属性设置为的HTML <form>元素.Firebug还表示期望父表格元素,但它已经解决,因此不会采取任何行动.method"post"null

只有"普通香草"链接h:outputLink和配偶不需要表格,因为它们只是发出GET请求.