2012-03-21 86 views
0

有关我的要求的简要介绍。JSF中的commandButton问题

我有一个空的JSF dataTable。
现在,当我点击一个按钮时,它应该用数据填充空的数据表。

<h:commandButton value="Search" action="#{myBean.searchresults}" /> 

问题:
当我按一下按钮,它填充数据到DataTable,但立即显示我,当我打开我的应用程序第一次(刷新页面)相同的页面。
我希望页面不刷新本身并显示填充的数据。

我被困在这个问题的最后2天。
请提供您的建议。

在此先感谢!

感谢, 李

+2

你能发布一些相关的代码?谢谢! – Mechkov 2012-03-21 11:45:20

+0

请显示一些代码!我最好的选择是在你的* @ ManagedBean *上有一个错误的范围,或者一些搞砸的AJAX更新。干杯! – SimonSez 2012-03-21 11:51:40

+0

请找到代码片段: – Leinz 2012-03-21 12:03:06

回答

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); 
} 
+0

感谢BalusC,你的解决方案工作。 :) – Leinz 2012-03-24 17:12:30

1

你有一些导航逻辑通过searchresults回来了?

如果没有,

searchresults一个void方法

public void searchresults(){ 
//logic here 
} 

,并添加F:阿贾克斯按钮

<h:commandButton value="Search" action="#{myBean.searchresults}" > 
    <f:ajax execute="@form" render="@form"/> 
</h:commandButton> 
+0

感谢Daniel对你的回复,现在我的问题已经解决了...... :) – Leinz 2012-03-31 16:34:56

+0

欢迎你。 – Daniel 2012-03-31 16:44:20