我有一个会话范围的托管bean,其中包含以下内容:
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);
}
}
}
}
escalaOrigin为null。 bean是viewScoped,我改为sessionScoped思考,这将解决问题,但它继续在第一个if中输入nullPointerException。 我100%确定setEscalaOrigin方法没有收到null,我不知道还有什么。
编辑: 以下代码位于calld sugerirDobra的按钮中,它将escalaOrigem设置为null。这就是在不更改设置者名称的情况下更改属性名称所能得到的结果。
<f:setPropertyActionListener value="#{null}"
target="#{escalaDiariaTrocaController.escalaParaTrocaOrigem}">
</f:setPropertyActionListener>