2016-08-01 23 views
0

Ich habe einen Frühling-Boot-Vaadin Anwendung mit Hauptklassen wieRequestMapping in Sprint-Boot-Vaadin Anwendung

Anwendungsklasse

@SpringBootApplication 
public class MySpringBootApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(MySpringBootApplication.class, args); 
    } 
} 

Vaadin-UI-Klasse

folgt
@Theme("valo") 
@SpringUI 
public class MyAppUI extends UI { 

    @Autowired 
    private SpringViewProvider viewProvider; 

    @Override 
    protected void init(VaadinRequest vaadinRequest) { 

     final VerticalLayout mainLayout = new VerticalLayout(); 
     setContent(mainLayout); 

     Navigator navigator = new Navigator(this, mainLayout); 
     navigator.addProvider(viewProvider); 
    } 
} 

Vaadin-View-Klasse

@SpringView(name = "") 
public class MyAppView extends VerticalLayout implements View { 

    @PostConstruct 
    void init() { 
     // Some logic here 
    } 

    @Override 
    public void enter(ViewChangeListener.ViewChangeEvent event) { 
     // Some logic here 
    } 
} 

Derzeit übernimmt die Anwendung die Anforderung in Stamm-URL heißt http://localhost:8080/ sagen. Aber ich möchte, dass die Anwendung Anforderungen verarbeitet, wenn ein Parameter von http://localhost:8080/<parameter_value> bereitgestellt wird. Wie kann ich das erreichen?

Die Logik, die ich ausführen muss, ist in beiden Fällen identisch. Ich möchte, dass MyAppView sowohl die Root-URL-Anfrage als auch die mit einem Parameterwert verarbeitet.

+0

Ansichten werden durch ihren Namen geöffnet – cfrick

Antwort

0

Mit der VAADIN-Methode getUI().getPage().getLocation().getPath() kann der Parameterwert aus der URL abgerufen werden. Dies gibt alles von '/' in der URL. Beispielcode ist unten angegeben:

Vaadin-View-Klasse

@SpringView(name = "") 
public class MyAppView extends VerticalLayout implements View { 

    @PostConstruct 
    void init() { 
     // Some logic here 
    } 

    @Override 
    public void enter(ViewChangeListener.ViewChangeEvent event) { 
     // Remove spaces and also initial '/' in the path 
     String uriParamValue = getUI().getPage().getLocation().getPath().trim().substring(1); 
     // Do processing with uriParamValue 
    } 
}