简要介绍我的要求。
我有一个空的JSF dataTable 现在,当我点击一个按钮时,它应该用数据填充空的数据表。
<h:commandButton value="Search" action="#{myBean.searchresults}" />
问题:
当我点击按钮时,它会将数据填充到dataTable,但是当我第一次加载我的应用程序(刷新页面)时,会立即显示同一页面。
我希望页面不刷新本身并显示填充的数据。
过去两天我都遇到了这个问题 请提供您的建议。
提前致谢!
谢谢, 利
答案 0 :(得分:3)
所以你想要一个异步提交和部分渲染?那里有<f:ajax>
标签。
您可以在execute
属性中指定提交上下文,在render
属性中指定要更新的客户端ID。
E.g。
<h:form>
<h:inputText value="#{bean.query}" />
<h:commandButton value="Search" action="#{bean.search}">
<f:ajax execute="@form" render=":results" />
</h:commandButton>
</h:form>
<h:panelGroup id="results">
<h:dataTable value="#{bean.results}" rendered="#{not empty bean.results}">
...
</h:dataTable>
</h:panelGroup>
与
public void search() {
results = service.find(query);
}
答案 1 :(得分:1)
你有searchresults
返回的导航逻辑吗?
如果没有,
使searchresults
成为空方法
public void searchresults(){
//logic here
}
并将f:ajax添加到按钮
<h:commandButton value="Search" action="#{myBean.searchresults}" >
<f:ajax execute="@form" render="@form"/>
</h:commandButton>