0

我在搜索页面中遇到默认值问题。我将 JSF 与 IceFaces 一起使用。

首先,让我从我所拥有的开始。

我有一个搜索页面,它使用两个输入框员工姓名和员工编号进行搜索。

我有一个列表页面,其中列出了我搜索过的任何内容。它有编辑和重做按钮。

我有一个编辑页面,可以让我编辑并保存。它有保存和重做按钮。

搜索页面

员工姓名: ........

员工编号: ........

||搜索按钮||

列表页面

员工姓名

员工编号

员工位置

||编辑按钮|| ||重做​​||

编辑页面

员工姓名

员工编号

员工位置

||保存按钮|| ||重做​​||

情景#1

假设我在搜索页面中并输入有效的员工姓名和员工编号。在我点击搜索按钮后,它会转到列表页面。在我进入列表页面后,如果我按重做,它会将我定向到搜索页面,但这次搜索页面将自动具有我最近执行的搜索的默认值。(而不仅仅是空的输入框)

情景#2

假设我再次进入搜索页面并输入有效的员工姓名和员工编号。在我点击搜索按钮后,它会转到列表页面。在我进入列表页面并按编辑后,它会将我定向到编辑页面。一旦我进入编辑页面,假设我更改了员工的员工编号并点击保存(保存后我仍在列表页面上)。假设我点击了重做按钮,它再次将我重定向回搜索页面,但没有我最近执行的搜索的默认值(搜索页面将有空的输入框)

问题:

1)首先,我无法弄清楚一旦我重做(在初始搜索/场景#1之后),JSF如何能够为搜索页面提供默认值。是否有内置的会话变量/请求变量。

2)现在对于第二种情况,它没有默认值,我不确定为什么它没有默认值。所以,基本上我想弄清楚他们用来填充输入文本框的 JSF 中的这个请求变量在哪里。

感谢您的帮助和支持。

4

1 回答 1

0

我认为您是在使用 FacesContext.getCurrentInstance().redirect() 在页面之间导航(而不是 history.back() 或 history.go(-1) )。

如果您正在这样做,如果您移动或按下导航器中的刷新按钮,任何请求或视图变量都应该消失。

例如,如果您使用会话变量(这意味着您希望在页面之间保留它),则需要在重定向之前或在类的构造函数方法中对其进行清理。

XHTML / JSP

< h:inputText value="#{class.search}" />

爪哇

公共类类{

    //this variable need to have the getter and setter
    private String search;
    public Class (){
           //build a method that clean all your variables;
           SessionBean.clean();
    }

}

我希望它有用。如果没有,请给我更多实施细节以帮助您。

于 2012-08-13T09:03:45.603 回答