java中构造函数中的代码仅在页面刷新时调用一次
在java中,即使页面通过某个actionListener刷新,构造函数中的代码也可能只被调用一次。在C#Page.PostBack方法很好用,但在java中我找不到正确的方法。如果您谈论的是JSF,那么您需要将BackingBeans范围从“应用程序”或“会话”更改为“请求” 这样,您的构造函数可以根据请求工作 JSF 2.0的示例:java中构造函数中的代码仅在页面刷新时调用一次,java,jsf,Java,Jsf,在java中,即使页面通过某个actionListener刷新,构造函数中的代码也可能只被调用一次。在C#Page.PostBack方法很好用,但在java中我找不到正确的方法。如果您谈论的是JSF,那么您需要将BackingBeans范围从“应用程序”或“会话”更改为“请求” 这样,您的构造函数可以根据请求工作 JSF 2.0的示例: @ManagedBean() @SessionScoped public class MyBackingBean { ... } @ManagedBean
@ManagedBean()
@SessionScoped
public class MyBackingBean {
...
}
@ManagedBean()
@RequestScoped
public class MyBackingBean {
...
}
如果您正在谈论JSF,那么您需要将BackingBeans范围从“应用程序”或“会话”更改为“请求” 这样,您的构造函数可以根据请求工作 JSF 2.0的示例:
@ManagedBean()
@SessionScoped
public class MyBackingBean {
...
}
@ManagedBean()
@RequestScoped
public class MyBackingBean {
...
}
您可以通过以下函数知道何时回发:
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
@ManagedBean
public class HelperBean {
public boolean isPostback() {
FacesContext context = FacesContext.getCurrentInstance();
return context.getRenderKit().getResponseStateManager().isPostback(context);
}
}
如果每次刷新都调用默认构造函数,这意味着您的bean是requestscope
。刷新(GET)或回发(POST)被视为请求,因此将为每个请求创建bean。还有其他实例化选项,例如SessionScoped
或ApplicationScoped
,或者在发生回发时使用上述函数实例化它
设置范围a-la-JSF1.2
编辑位于/WEB-INF
下的faces config.xml
文件:
<managed-bean>
<managed-bean-name>myBean</managed-bean-name>
<managed-bean-class>com.mypackage.myBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
蚕豆
com.mypackage.myBean
要求
您可以使用
请求
、会话
或应用程序
您可以通过以下功能知道何时回发:
import javax.faces.bean.ManagedBean;
import javax.faces.context.FacesContext;
@ManagedBean
public class HelperBean {
public boolean isPostback() {
FacesContext context = FacesContext.getCurrentInstance();
return context.getRenderKit().getResponseStateManager().isPostback(context);
}
}
如果每次刷新都调用默认构造函数,这意味着您的bean是requestscope
。刷新(GET)或回发(POST)被视为请求,因此将为每个请求创建bean。还有其他实例化选项,例如SessionScoped
或ApplicationScoped
,或者在发生回发时使用上述函数实例化它
设置范围a-la-JSF1.2
编辑位于/WEB-INF
下的faces config.xml
文件:
<managed-bean>
<managed-bean-name>myBean</managed-bean-name>
<managed-bean-class>com.mypackage.myBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
</managed-bean>
蚕豆
com.mypackage.myBean
要求
您可以使用
请求
、会话
或应用程序
您在说什么“页面”?每个实例只调用一次Java构造函数。如果构造函数代码被调用的次数超出预期,则可能会创建比预期更多的对象。jsf页面。每次刷新调用默认构造函数…你在说什么“页面”?每个实例只调用一次Java构造函数。如果构造函数代码被调用的次数超出预期,则可能会创建比预期更多的对象。jsf页面。每次刷新调用默认构造函数。。。