取消按钮jsf不重置实体

时间:2014-01-27 14:00:11

标签: jsf jsf-2 omnifaces

我正在尝试实施取消按钮以清除我的实体中的字段。 但是,当我将实体设置为null时,我的字段仍保持其值。

代码:

EntityBB的取消方法(注意调试器可以达到取消方法):

public void cancelAddStandardLetter() {
    setEntity(null);
    standardLetterInit();
}

此方法确实将实体中的所有值设置回null,并且standardLetterInit方法设置了一些所需的默认值(尝试使用相同的方法,不使用standardLetterInit - >相同的结果)。

xhtml页面(其他输入字段被遗漏):

<o:form includeRequestParams="true" id="addStandardLetterForm">

    <h:inputTextvalue="#{entityBB.entity.fileName}" styleClass="rInput"/>

    <h:commandButton value="Cancel" immediate="true"
            styleClass="floatRight"
            action="#{entityBB.cancelAddStandardLetter()}" />
</o:form>

按下“取消”按钮后,“fileName”字段中输入的值仍然存在。怎么可能?

1 个答案:

答案 0 :(得分:1)

确保bean是视图范围并使用普通的GET按钮。

<h:button value="Cancel" />

这基本上刷新了页面。它将重新创建视图范围的bean实例。无需提交整个表格。如果仍然显示输入值,那么它可以是浏览器缓存或自动填充/自动填充,您可以分别使用servlet filterautocomplete="off"来控制。