我有两类托管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)`