使用@ManagedProperty注入的托管bean实例保持为null

时间:2015-12-24 01:35:44

标签: jsf managed-bean managed-property

我有两类托管bean,并使用@ManagedProperty尝试访问第二类,但每次都得到NullPointerException。这有什么问题?

@ManagedBean
@SessionScoped
public class EventCreateEditModel implements Serializable {
    @ManagedProperty("#{eventCreateEditCostModel}")
    private EventCreateEditCostModel eventCreateEditCostModel;

    public void update() {
        eventCreateEditCostModel.update();
    }
    public void setEventCreateEditCostModel(final EventCreateEditCostModel eventCreateEditCostModel) {
        this.eventCreateEditCostModel = eventCreateEditCostModel;
    }

    public EventCreateEditCostModel getEventCreateEditCostModel() {
        return eventCreateEditCostModel;
    }
}

这是我的第二堂课。

@ManagedBean
@SessionScoped
public class EventCreateEditCostModel implements Serializable {
    public void update() {
        System.out.println("IT works");
    }
}

我尝试使用@ManagedProperty让第一个类调用第二个类更新,但当我尝试从第一个类访问更新时,我得到的是NullPointerException。我确实有@ManagedProperty的设置者和获取者。

这是堆栈跟踪,它指向类EventCreateEditModel中的update方法(尝试粘贴整个堆栈但是这个系统不会格式化它,所以这里是关键部分)

    `Dec 24, 2015 2:02:57 PM com.sun.faces.lifecycle.InvokeApplicationPhase execute
    WARNING: java.lang.NullPointerException
    javax.el.ELException: java.lang.NullPointerException
at com.sun.el.parser.AstValue.invoke(AstValue.java:238)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
    Caused by: java.lang.NullPointerException
at com.rem40.controller.EventCreateEditModel.update       (EventCreateEditModel.java:116)
... 35 more

2015年12月24日下午2:02:57 com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError 严重:java.lang.NullPointerException     at com.rem40.controller.EventCreateEditModel.update(EventCreateEditModel.java:116)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)`

0 个答案:

没有答案