<f:ajax execute =“ newDate” listener =“ myBean.getResultByNewDate()”>返回错误消息“服务器发送了空响应”

时间:2019-10-14 17:13:28

标签: jsf

以下是我的JSF代码

<h:input type="newDate">

<h:commandLink>
<f:ajax execute="newDate" listener="myBean.getResultByNewDate()">
</h:commandLink>

在后备bean中,将newDate字段定义为Date,并且还定义了getResultByNewDate()方法。但是在单击命令链接时,我收到一条错误消息:“服务器发送了空响应”。

我需要在getResultByNewDate()中使用newDate的值。有关解决此问题的任何建议。语法正确吗?

1 个答案:

答案 0 :(得分:0)

您的JSF代码有多个问题:

1)input应该替换为inputText
2)type在这里也没有用。
3)listener应该使用适当的绑定。
4)execute应该使用需要在ajax上执行的xhtml组件的id

代码应类似于:

<h:inputText value="#{myBean.newDate}" id="dateInput">

<h:commandLink>
<f:ajax execute="dateInput" listener="#{myBean.getResultByNewDate()}">
</h:commandLink>

要特别注意的是,如果您用commandButton代替commandLink,则应声明type="button",否则将遇到ajax问题。因为ajax的类型为button,而commandButton的类型默认为submit,而commadLink的类型为button