我正在使用MyFaces 2.0和RichFaces 4.3.7。解決或禁用MyFaces警告「HtmlRendererUtils警告如果呈現輸入,應始終提供一個輸入值」
我的任務是根據需要使用ajax在2個面板組之間切換。
<h:panelGroup rendered="#{!someBean.renderOk}" id="firstpanel">
<h:inputText value="#{someBean.valueA}"></h:inputText>
<h:inputText value="#{someBean.valueB}"></h:inputText>
</h:panelGroup>
<h:panelGroup rendered="#{someBean.renderOk}" id="secondpanel">
<h:inputText value="#{someBean.valueC}"></h:inputText>
<h:inputText value="#{someBean.valueD}"></h:inputText>
</h:panelGroup>
<h:selectBooleanCheckbox value="#{calendarBean.popup}" >
<a4j:ajax event="click" render="firstpanel secondpanel" />
</h:selectBooleanCheckbox>
<a4j:commandButton value="Save" actionListener="someBean.requestSave"
render="@form" execute="@form" />
我支持bean是
public class SomeBean implements Serializable{
/getters and setters defined/
private String valueA;
private String valueB;
private String valueC;
private String valueD;
private boolean renderOk;
@inject
SomeDelegate someDelegate;
public void save(){
if(renderOk){
someDelegate.save(valueC,valueD);
}else{
someDelegate.save(valueA,valueB);
}
}
}
這是我的代碼只是一些部分我明白,我不能傳遞一個inputText的值作爲禁用或隱藏的,但我不能對妥協。是否有任何解決方法可以將值從提交隊列中刪除。
表單提交時沒有問題,但MyFaces正在顯示警告消息。
HtmlRendererUtils WARN如果輸入呈現,其表單已提交,並且最初不是呈現爲禁用或只讀,則應始終提供輸入值。通過JavaScript禁用輸入元素後,您無法提交表單。考慮將只讀設置爲true,或者在提交表單之前將禁用的值重置爲false。
渲染和隱藏輸入的頻率非常高,恐怕我的日誌文件會很大。我如何解決或禁用這些警告消息?
我錯過了提交表單和/或呈現panelGroup的部分。可能有助於添加完整的xhtml。我的第一個想法是,你錯過了啓動渲染的組件中的「執行」。 –
@MilovdZee我的提交按鈕位於面板組之外。即時通過整個小組組執行。 –
以防萬一,這有助於某人:我有一個使用dataTable的自己的jsf組件的類似問題。我可以通過在表單中包裝dataTable來擺脫這個問題。 – narko