解决或禁用MyFaces警告" HtmlRendererUtils警告如果输入呈现,则应始终提交输入的值"

时间:2016-02-04 07:57:10

标签: jsf logging jsf-2 myfaces

我正在使用MyFaces 2.0和RichFaces 4.3.7。

我的任务是根据需要使用ajax在两个面板组之间切换。

<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。

渲染和隐藏输入的频率非常高,我担心我的日志文件会很大。如何解决或禁用这些警告消息?

1 个答案:

答案 0 :(得分:0)

如何在没有ID的情况下通过面板组执行?我认为给每个组件一个ID是一个好习惯。渲染具有渲染标志的组件也不起作用,因为未渲染的组件在JSF树中不可用。 但正如你所说,你正在渲染父panelGroup,所以它应该可以工作。