[英]Resetting jsf inputText value inside a dataTable when valueChangeListener fires
我使用的是Icefaces 1.8.2,很遺憾,我無法更改它。 我有一個:
<ice:selectOneMenu value="#{myBean.selectedValue}" partialSubmit="true"
valueChangeListener="#{myBean.reloadTable}">
...
然后我有一個dataTable:
<ice:dataTable value="#{myBean.items}" var="item">
<ice:column>
<ice:outputText value="#{item.key}" />
</ice:column>
<ice:column>
<h:inputText value="#{item.value}" />
</ice:column>
</ice:dataTable>
在bean中:
private List<KeyValueEntry> items;
public String reloadTable(ValueChangeEvent event) {
items=getNewItems(); //returns a list with all values set to null
UIViewRoot view = FacesContext.getCurrentInstance().getViewRoot();
return view.getViewId() + "?faces-redirect=true";
}
現在問題如下:如果從reloadTable(ValueChangeEvent event)
調用, items=getNewItems()
不會清空輸入框。 如果我編寫了一個由commandButton
調用的重置方法,它將很好地工作。
commandButton執行“提交”並重定向到您配置的頁面/視圖。
據我所知,valueChangeListener默認情況下不是。 因此,您需要在bean中執行重定向,例如:
FacesContext.getCurrentInstance().getExternalContext().redirect(..)
也許items=getNewItems()
清空您的輸入,但是使用監聽器時視圖不會再次呈現?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.