나는 GWT에서 역사를 시험해보고있다. 나는이 approch가 실행하기에 정말로 좋은 것을 안다. 불행히도, 내 코드는 작동하지 않습니다.GWT - 왜이 기록이 작동하지 않습니까?
이 내 실제 코드 : 내가 #apartment를로드 할 때
public class PageLoader implements EntryPoint, ValueChangeHandler<String> {
private FlowPanel pageloader;
private GWTServiceAsync rpcService;
public void onModuleLoad() {
pageloader=new FlowPanel();
rpcService=GWT.create(GWTService.class);
pageloader.add(new HomepageContext(rpcService));
RootPanel.get().add(pageloader);
History.addValueChangeHandler(this);
if(!History.getToken().isEmpty()){
changePage(History.getToken());
}
}
public void onValueChange(ValueChangeEvent event) {
changePage(History.getToken());
}
public void changePage(String token) {
if(History.getToken().equals("apartment")) {
pageloader.clear();
pageloader.add(new ApartmentContext(rpcService));
} else {
pageloader.clear();
pageloader.add(new HomepageContext(rpcService));
}
}
}
############################################################
public class ApartmentContext extends Index {
public ApartmentContext(GWTServiceAsync rpcService) {
super(rpcService);
this.getContent().add(new Apartment());
}
}
public class Apartment extends FlowPanel {
// somethings
}
############################################################
public class Index extends FlowPanel {
private Center center;
public Index(GWTServiceAsync rpcService) {
this.center=new Center(rpcService);
this.add(center);
}
public FlowPanel getContent() {
return center.getContent();
}
}
############################################################
public class Center extends FlowPanel {
private Menu menu;
private Content content;
public Center(GWTServiceAsync rpcService) {
this.content=new Content();
this.menu=new Menu(rpcService, this);
this.add(menu);
this.add(content);
}
public Content getContent() {
return this.content;
}
}
, 내가 얻을 :
01:19:45,112 [ERROR] Uncaught exception escaped
java.lang.NullPointerException: null
at org.sinfonet.client.apartment.Apartment.<init>(Apartment.java:24)
at org.sinfonet.client.context.ApartmentContext.<init>(ApartmentContext.java:14)
at org.sinfonet.client.PageLoader.changePage(PageLoader.java:36)
at org.sinfonet.client.PageLoader.onValueChange(PageLoader.java:30)
at com.google.gwt.event.logical.shared.ValueChangeEvent.dispatch(ValueChangeEvent.java:128)
at com.google.gwt.event.logical.shared.ValueChangeEvent.dispatch(ValueChangeEvent.java:1)
at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.fireEvent(HandlerManager.java:65)
at com.google.gwt.event.shared.HandlerManager$HandlerRegistry.access$1(HandlerManager.java:53)
at com.google.gwt.event.shared.HandlerManager.fireEvent(HandlerManager.java:178)
at com.google.gwt.user.client.impl.HistoryImpl.fireEvent(HistoryImpl.java:74)
at com.google.gwt.event.logical.shared.ValueChangeEvent.fire(ValueChangeEvent.java:43)
at com.google.gwt.user.client.impl.HistoryImpl.fireHistoryChangedImpl(HistoryImpl.java:81)
at com.google.gwt.user.client.impl.HistoryImpl.newItem(HistoryImpl.java:118)
at com.google.gwt.user.client.History.newItem(History.java:173)
at com.google.gwt.user.client.History.newItem(History.java:156)
at com.google.gwt.user.client.ui.Hyperlink.onBrowserEvent(Hyperlink.java:163)
at com.google.gwt.user.client.DOM.dispatchEventImpl(DOM.java:1307)
at com.google.gwt.user.client.DOM.dispatchEvent(DOM.java:1263)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
at com.google.gwt.dev.shell.BrowserChannel.reactToMessagesWhileWaitingForReturn(BrowserChannel.java:1714)
at com.google.gwt.dev.shell.BrowserChannelServer.invokeJavascript(BrowserChannelServer.java:165)
at com.google.gwt.dev.shell.ModuleSpaceOOPHM.doInvoke(ModuleSpaceOOPHM.java:120)
at com.google.gwt.dev.shell.ModuleSpace.invokeNative(ModuleSpace.java:507)
at com.google.gwt.dev.shell.ModuleSpace.invokeNativeObject(ModuleSpace.java:264)
at com.google.gwt.dev.shell.JavaScriptHost.invokeNativeObject(JavaScriptHost.java:91)
at com.google.gwt.core.client.impl.Impl.apply(Impl.java)
at com.google.gwt.core.client.impl.Impl.entry0(Impl.java:188)
at sun.reflect.GeneratedMethodAccessor131.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.google.gwt.dev.shell.MethodAdaptor.invoke(MethodAdaptor.java:103)
at com.google.gwt.dev.shell.MethodDispatch.invoke(MethodDispatch.java:71)
at com.google.gwt.dev.shell.OophmSessionHandler.invoke(OophmSessionHandler.java:157)
at com.google.gwt.dev.shell.BrowserChannel.reactToMessages(BrowserChannel.java:1669)
at com.google.gwt.dev.shell.BrowserChannelServer.processConnection(BrowserChannelServer.java:401)
at com.google.gwt.dev.shell.BrowserChannelServer.run(BrowserChannelServer.java:222)
at java.lang.Thread.run(Thread.java:619)
1 - 내가 잘 이해한다면, 내가 History.newItem를 사용할 때() 전 onValueChange() 함수를 호출 하시겠습니까? 왜 일하지 않았습니까?
2 - 클래스 기록은 정적입니까? 그래서 나는 언제든지 그것을 통과 할 필요가 없다. 신청할 때 어떤 경연 대회에서라도 부를 수 있습니까? 당신의 changePage에
작동하지 않는 기능은 무엇입니까? History.addValueChangeHandler를 호출하고 프로필 위젯을 전달 했습니까? –
Ohh 미안 ... 나는 조금 피곤하다! 코드 복사 및 붙여 넣기에 완전히 잘못되었습니다 (다른 예가되었습니다). 이제 오른쪽 한 주제로 업데이트했습니다 : – markzzz