Face à ces problèmes avec l'interface utilisateur Vaadin et le mappage d'URL.Problèmes de mappage d'URL Vaadin: mappage d'URL de sous-chemin et mappage d'URL automatique ne fonctionnant pas
problème1:
Je suis en train d'utiliser Vaadin pour les opérations CRUD de base pour mes entités. Pour commencer, je voudrais exposer une classe d'interface utilisateur à/subpath/xyz url. Mais le mappage de l'URL de sous-chemin ne fonctionne pas d'une manière ou d'une autre. (S'il vous plaît noter que lorsque je garde ou supprimer @Spring (path = "myui") mappe encore localhost: 8080/myui/et non localhost: 8080/subpath/myui/
Qu'est-ce que je suis absent
J'ai suivi la documentation de Vaadin mais pas de chance jusqu'à présent https://vaadin.com/docs/-/part/framework/application/application-environment.html#application.environment.servlet-mapping
Problem2. en outre, Vaadin ne génère pas mappages d'URL automatiquement à partir du nom de la classe par exemple MyUI classname doit être mis en correspondance avec localhost:. 8080/ma -ui/si je ne donne pas l'attribut path dans @SpringUI (selon les documents de Vaadin)
import com.vaadin.annotations.Theme;
import com.vaadin.annotations.Title;
import com.vaadin.annotations.VaadinServletConfiguration;
import com.vaadin.server.VaadinRequest;
import com.vaadin.spring.annotation.SpringUI;
import com.vaadin.spring.server.SpringVaadinServlet;
import com.vaadin.ui.*;
import javax.servlet.annotation.WebServlet;
@Theme("valo")
@Title("My UI")
@SpringUI(path="myui")
public class MyUI extends UI {
@Override
protected void init(VaadinRequest request) {
// Create the content root layout for the UI
VerticalLayout content = new VerticalLayout();
setContent(content);
// Display the greeting
content.addComponent(new Label("Hello World!"));
// Have a clickable button
content.addComponent(new Button("Click Me!",
click -> Notification.show("Clicked!")));
}
@WebServlet(urlPatterns = {"/admin/*", "/VAADIN/*"}, name = "MyUIServlet", asyncSupported = true)
@VaadinServletConfiguration(ui = MyUI.class, productionMode = false)
public static class MyUIServlet extends SpringVaadinServlet {
}
}
Actuellement, les docs sont maintenant par défaut pour v8, alors que v7 a un chemin différent 'https://vaadin.com/docs7/-/part7 ..... ' – Morfic
J'utilise 8.0.5. Ça ne marche pas. –
J'utilise la même version avec la version printemps 1.5.3 et le code que j'ai posté fonctionne comme décrit dans la réponse. @SpringUI() correspond à la racine de servlet et @SpringUI (path = "myui") correspond à/myui. @SpringUI (path = "myui/subpath") correspond à/myui/subpath. – efekctive