JSF h:inputText在a4j:commandButton提交后保留旧数据

时间:2012-05-25 02:59:24

标签: jsf ajax4jsf

好的,我有这样的事情:

<a4j:form ignoreDupResponses="true">
    <rich:tabPanel switchType="ajax" immediate="true" id="panelId">
        <rich:tab label="Name" name="NAME" action="#{bean.clearData()}">
            <h:inputText value="#{bean.value1}" required="true"/>
            <h:inputText value="#{bean.value2}" required="true"/>
            <rich:messages/>
            <a4j:commandButton action="#{bean.someAction()}" value="OK"
                reRender="panelId" />
        </rich:tab>
        <rich:tab label="Name2" name="NAME2">
            <!-- Some content -->
        </rich:tab>
    </rich:tabPanel>
</a4j:form>

bean.someAction()是一个保存在我的数据库value1value2中的函数。 bean.clearData()是一个从bean中清除value1value2的函数,如果它已经保存在数据库中,则加载它。

这是我的问题...当我输入value1某个值,然后我将value2留空时,我会在<rich:messages/>中打印一些消息。
然后我切换到“Name2”选项卡,然后返回选项卡“Name1”,网页将显示任何<h:inputText/>的旧值,因为我执行bean.clearData()值为空我的豆子和他们甚至不在谈话中。

编辑:我的表单会保留数据并且不会清除它,即使它不再存在于bean中。

我能想到的只是浏览器缓存数据,我想避免数据在没有保存在我的数据库中时加载。有没有人知道如何解决这个问题? 我在h:inputText中尝试了autocomplete =“off”但没有结果。

PS:使用FireFox 12.0

2 个答案:

答案 0 :(得分:1)

您在reRender="panelId"内尝试了<a4j:form>吗?

答案 1 :(得分:0)

在浏览器设置中提供清除历史记录,Cookie,缓存等automatically 我认为它会起作用。