Jsf 为什么我的会话范围的托管bean不保留属性的值?
我有一个会话范围的托管bean,其属性为:Jsf 为什么我的会话范围的托管bean不保留属性的值?,jsf,jsf-2,Jsf,Jsf 2,我有一个会话范围的托管bean,其属性为: private EscalaMensalStruct escalaOrigem; 我在方法setEscalaOrigem(EscalaMensalStruct ems)中手动设置,但是当我调用该方法时 public void sugerirDobra() { for (final EscalaMensalStruct escalaDiaria : Cache.getInstance().getListaEscalaDiari
private EscalaMensalStruct escalaOrigem;
我在方法setEscalaOrigem(EscalaMensalStruct ems)中手动设置,但是当我调用该方法时
public void sugerirDobra()
{
for (final EscalaMensalStruct escalaDiaria : Cache.getInstance().getListaEscalaDiaria())
{
if (escalaDiaria.getLinha().equals(this.escalaOrigem.getLinha()))
{
if (escalaDiaria.getFim() <= escalaDiaria.getInicio())
{
this.listaDobra.add(escalaDiaria);
}
}
}
}
public void sugerirDobra()
{
对于(最终EscalaMensalStruct escalaDiaria:Cache.getInstance().getListEscaladiaria())
{
if(escalaDiaria.getLinha().equals(this.escalaOrigem.getLinha()))
{
如果(escalaDiaria.getFim()对于给定的代码,这是不可能知道的…只需搜索escalaOrigem
赋值并检查null
是否未被赋值。还要检查bean本身是否未被重建。我如何检查bean是否未被重建?只是其构造函数中的一个断点。如果您有escalaOrigem==null,则另一个mana已创建ged bean实例。调试代码,将断点放在setEscalaOrigem(EscalaMensalStruct ems)中,注意“this”变量的id,将第二个断点放在方法sugerirDobra中,并检查此id是否与前一个相同。如果确认(id不同)您需要修改您的CDI结构。如果id相同,则在设置Calaorigem之前调用sugerirDobra。编辑问题以显示初学者的错误。
<f:setPropertyActionListener value="#{null}"
target="#{escalaDiariaTrocaController.escalaParaTrocaOrigem}">
</f:setPropertyActionListener>