我正在尝试创建一个页面,在 ajax 请求后将显示一些内容。这是我的代码的一部分:
<h:panelGroup>
<h:form>
Retrive object by id: <h:inputText id="myInput" value="#{myManager.id}"/>
<h:commandButton value="ok" action="#{myManager.getById}" >
<f:ajax execute="myInput" render="resultRow" />
</h:commandButton>
<h:panelGroup id="resultRow" >
<br />
You retrived object which id is:
<h:outputText value="#{retrivedObject.id}" />
and its name is:
<h:outputText value="#{retrivedObject.name}" />
</h:panelGroup>
</h:form>
</h:panelGroup>
我的问题是甚至在我检索任何对象之前就呈现了“您检索了 id 为的对象:” 。我希望它被隐藏,直到我点击我的命令按钮。是否可以只使用 jsf + html (这必须使用 ajax 来完成)?如果必须,我可以使用一些 javascript,但我不喜欢。
我试图通过rendered="#{!retrivedObject.id==0}"
(我的对象不能有 id 0)来解决这个问题,但这不起作用 - 面板组根本没有呈现,当我调用 ajax 请求时,它无法找到“resultRow”id。
提前感谢您的帮助。