客户端模式时保存了多少状态信息

时间:2016-01-27 16:07:04

标签: jsf client-side state-saving

如何在客户端模式下定义组件树的最大数量?如何防止调用@PostConstruct方法?

我正在使用glassfish 4.1开发JavaEE7的应用程序。 如果我没记错的话,当javax.faces.STATE_SAVING_METHOD是客户端时,组件树没有限制。 但是当我在Chrome中打开超过25个选项卡并运行第一个选项卡时,该选项卡的托管bean将构建并调用@PostConstruct方法。 我认为这种行为似乎让我失去了组件树。

以下是我的申请的源代码。

test.xhtml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition
    template="/template/template.xhtml"
    xmlns="http://www.w3.org/1999/xhtml"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    >
    <h:panelGrid columns="5" cellpadding="5" >
        <p:commandButton id="returnButton" value="return"
                         action="#{testEditBean.return()}"
                         immediate="true"
                         />
    </h:panelGrid>
</ui:composition>

testBean.java

import java.io.Serializable;
import javax.annotation.PostConstruct;
import javax.faces.view.ViewScoped;
import javax.inject.Named;

@Named(value = "testBean")
@ViewScoped
public class TestBean implements Serializable {

    @PostConstruct
    public void index() {
    }

    public String doReturn() {
        String ret = "/content/tmp/testSearch.xhtml";
        return ret;
    }
}

[后记2016/01/28] 我理解HTTP会话存储视图范围bean(最多25个)和视图状态仅存储组件树。 这是我的新问题。

除非我们将mojjara 2.x更改为另一个JSF实现,否则我们无法打开超过25个? “超过25个选项卡”包含“用户打开2个选项卡,第2个选项卡中发生23次转换”的情况。

0 个答案:

没有答案