2013-04-24 1 views
0

로그인보기에서 다른보기로 이동하려고합니다.이 과정은 내가 작성한 인증 방법을 통해 이루어집니다. 그러나 로그인보기에서 다른보기로 갈 수 있는데, 창을 새로 고칠 때 액세스하려는보기가 없다는 것을 알려주는 추한 예외가 발생합니다. 나는 이미 2 UI를 가지고 노력했다. 다른 하나는 로그인 용이고 다른 하나는 다른 UI 용 setContent() 메서드를 통해 다른 UI를 설정하고 싶었지만 더 추한 예외를주었습니다. 그런 다음 다시 시도 했으므로 금지 된 것으로 밝혀졌습니다. 보기와 탐색기가 있지만 실패했습니다. 저 좀 도와 주 시겠어요? 인증 방법에 네비게이터가가는 설정 내 UI에서 코드 ..vaadin 7의 인증보기를 올바르게 탐색하는 방법

navigator = new Navigator(this, this); 

navigator.addView("",new LoginView()); 

내가 전화 :

getUI().getNavigator().addView("kniznica", new LoggedInView()); 
getUI().getNavigator().navigateTo("kniznica"); 

가 UI에 새보기를 추가하고 다음으로 이동합니다.

내가 'kniznica'라고보기 새로 고침 후 예외 :

java.lang.IllegalArgumentException: Trying to navigate to an unknown state 'kniznica' and an error view provider not present 
at com.vaadin.navigator.Navigator.navigateTo(Navigator.java:525) 
at com.vaadin.ui.UI.doInit(UI.java:534) 
at com.vaadin.server.AbstractCommunicationManager.getBrowserDetailsUI(AbstractCommunicationManager.java:2468) 
at com.vaadin.server.AbstractCommunicationManager.handleBrowserDetailsRequest(AbstractCommunicationManager.java:2362) 
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:325) 
at com.vaadin.server.VaadinServlet.service(VaadinServlet.java:201) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
at java.lang.Thread.run(Thread.java:722) 

답변

4

는 아마 처음 로그인보기로 이동되지 않습니다. init 메소드의 끝에서, 당신의 UI 클래스에서 다음을 사용

getUI().getNavigator().addView(LOGGEDINVIEW, new LoggedInView()); 
getUI().getNavigator().navigateTo(LOGGEDINVIEW); 
+0

답변 해 주셔서 감사합니다. 이미 유용한 정보가 여기에 있습니다. [https://vaadin.com/wiki/-wiki/Main/Creating%20a%20simple%20login%20view] (https : // vaadin .com/wiki/-/wiki/Main/% 20a % 20simple % 20login % 20view 만들기 – kalafun

0

: 인증 메소드 호출에서

public static String LOGINVIEW ="LoginView"; 
public static String LOGGEDINVIEW = "kniznica"; 

navigator = new Navigator(this, this); 

navigator.addView(LOGINVIEW ,new LoginView()); 
navigator.navigateTo(LOGINVIEW); 

을이 시도

this.navigator.setErrorView(myView); 

그것은 해결 될 것입니다 빈 fragment의 에러.

관련 문제