1

我的 JSF 支持 bean 是ViewScoped.
由于我添加了另一个动作侦听器,即使视图没有更改,也会重新创建 bean。

@ManagedBean (name="EncryptionBean")
@ViewScoped
public class EncryptionBean extends ClientBeanBase implements Serializable, ActionListener 
{
    .
    .
    .

    @Override
    public void processAction(ActionEvent arg0) throws AbortProcessingException 
    {
       refresh();
    }
}

HTML

<p:commandButton value="OK" type="submit" actionListener="#{FileSelectBean.actionOk}" oncomplete="dlgFileSelect.hide();" update=":formEncryptionDialog,:formTranscodingPage:streamInfoId" styleClass="buttonOK">        
    <f:actionListener type="com.company.rews.webclient.beans.EncryptionBean" />
</p:commandButton>

当我按下OK按钮时,我不希望再次创建bean,因为它是ViewScoped,但是它被重新创建(调用构造函数)并且我丢失了一些变量。当我删除该<f:actionListener>行时,没有在OK.

我应该怎么办?

4

1 回答 1

1

在这里找到答案: Session scoped managed bean and actionListener

而不是type一个需要使用binding

<f:actionListener binding="#{BackingBean}"/>
于 2013-05-20T12:33:38.500 回答