2016-03-28 3 views
0

Я делаю приложение навигации Vaadin 7 с помощью навигатора, в котором я пытаюсь перейти от пользовательского интерфейса для просмотра, но получаю следующее сообщение об ошибкеНавигатор в Vaadin 7

java.lang.IllegalArgumentException: Trying to navigate to an unknown state '' and an error view provider not present error. 

UI Класс:

public class NavigationUI extends UI { 

@WebServlet(value = "/*", asyncSupported = true) 
@VaadinServletConfiguration(productionMode = false, ui = NavigationUI.class) 
public static class Servlet extends VaadinServlet { 
} 

final private String navigatorView = "NEXT"; 
private Navigator navigator = null; 


@Override 
protected void init(VaadinRequest request) { 
    HorizontalLayout hori = new HorizontalLayout(); 
    final VerticalLayout layout = new VerticalLayout(); 
    hori.setMargin(true); 
    layout.setMargin(true); 
    setContent(hori); 
    hori.addComponent(layout); 
    Panel pnl = new Panel(); 
    hori.addComponent(pnl); 
    navigator = new Navigator(this,pnl); 
    navigator.addView("abc", Welcome.class); 
    Button button = new Button("Click Me"); 
    layout.addComponent(button); 
    button.addClickListener(new Button.ClickListener() { 
     public void buttonClick(ClickEvent event) { 
      navigator.navigateTo("abc"); 
     } 
    }); 
} 
} 

Просмотр Класс:

public class Welcome extends VerticalLayout implements View { 


public Welcome() { 
    // TODO Auto-generated constructor stub 
    VerticalLayout layout = new VerticalLayout(); 
    Button back = new Button("Go Back"); 
    layout.addComponent(back); 
    addComponent(layout); 
} 

@Override 
public void enter(ViewChangeEvent event) { 
    // TODO Auto-generated method stub 
    Notification.show("Welcome Here!!!"); 
} 
} 

Определить, что я делаю неправильно в этом, я буду благодарен :)

ответ

1

Как исключено, у вас нет сопоставления вида с '';

Вы должны добавить что-то вроде;

navigator.addView("", Welcome.class); 

или написать URL, как

http://localhost:8080/context_root/#!abc