以下是我的JSF代码
<h:input type="newDate">
<h:commandLink>
<f:ajax execute="newDate" listener="myBean.getResultByNewDate()">
</h:commandLink>
在后备bean中,将newDate字段定义为Date,并且还定义了getResultByNewDate()方法。但是在单击命令链接时,我收到一条错误消息:“服务器发送了空响应”。
我需要在getResultByNewDate()中使用newDate的值。有关解决此问题的任何建议。语法正确吗?
答案 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
。