我正在使用RichFaces命令按钮,我需要它来点击一个接一个地执行两个功能。现在,我有这样的代码:
<a4j:commandButton styleClass="btn-hide"
onl
id="btnId"
type="submit"
value="addNew"
rendered="true"
reRender="panel"
eventsQueue="eventQueue"
status="eventQueue"
actionListener="#{(someMethod.something)}"
oncomplete="javascript:something;this.disabled=false"
onclick="Bean.setDesc(document.getElementById('inputArea').value);this.disable=false"
ignoreDupResponses="true"
immediate= "true">
<s:conversationId></s:conversationId>
</a4j:commandButton>
如果查看onclick部分,我需要首先运行Bean.setDesc然后再运行this.disabled = false。我将如何按时间顺序进行此操作?
由于
答案 0 :(得分:2)
这是一个代码存根,可以帮助您入门。如果您希望直接从客户端获取值并使用javascript将它们传递给服务器方法,您将需要使用a4j:jsFunction。
<h:form id="form1" prependId="false">
<a4j:jsFunction
name="setDesc"
action="#{exampleBean.actionMethod()}"
immediate="true">
<a4j:param name="inputAreaValue" assignTo="#{exampleBean.desc}"/>
</a4j:jsFunction>
<h:commandButton id="button" onclick="setDesc(document.getElementById('inputArea').value); this.disabled = true;" />
</h:form>
和托管bean:
@ManagedBean(name = "exampleBean")
@SessionScoped
public class ExampleBean implements Serializable {
private static final long serialVersionUID = 6823632613070575039L;
private String desc;
public String getDesc() { return desc; }
public void setDesc(String desc) { this.desc = desc; }
/**
* Action Method
*/
public void actionMethod() {
// do something here
}
}