我正在尝试实施取消按钮以清除我的实体中的字段。 但是,当我将实体设置为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”字段中输入的值仍然存在。怎么可能?
答案 0 :(得分:1)
确保bean是视图范围并使用普通的GET按钮。
<h:button value="Cancel" />
这基本上刷新了页面。它将重新创建视图范围的bean实例。无需提交整个表格。如果仍然显示输入值,那么它可以是浏览器缓存或自动填充/自动填充,您可以分别使用servlet filter和autocomplete="off"
来控制。