我的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
上重新创建。
我该怎么办?
答案 0 :(得分:1)
在这里找到答案: Session scoped managed bean and actionListener
而不是type
需要使用binding
:
<f:actionListener binding="#{BackingBean}"/>