2016-08-05 3 views
0

Теперь я работаю с интеграцией JSP Spring + Vaadin. Я работаю над панелью администратора для интернет-магазина. Я уже сделал сервер Spring и успешно добавил в него Vaadin UI, но аннотация (@Autowired и т. Д.) В пользовательском интерфейсе vaadin не работает, потому что сервер разделен на два сервлета (dispacherServlet и vaadinServlet). Большинство страниц сервера работают с сервлетом-диспетчером, и только панель администратора работает с Vaadin. Мне нужно подключить репозиторий и службу JPA к пользовательскому интерфейсу vaadin. Не могли бы вы помочь мне исправить это и подключить службу к пользовательскому интерфейсу. UI Класс:Spring + Vaadin аннотация @Autowired в UI

@Theme("valo") 
@Title("Administration panel") 
@SpringUI 
public class Administration extends UI { 

    @Autowired 
    LoginService service; //null 

    @Override 
    protected void init(VaadinRequest request) { 
     AbsoluteLayout layout = new AbsoluteLayout(); 
     setContent(layout); 
     TabSheet tabs = new TabSheet(); 
     tabs.setSizeFull(); 
     UsersTab usersTab= new UsersTab(); 
     CategoriesTab categoriesTab = new CategoriesTab(); 
     tabs.addComponent(usersTab.getLayout()); 
     tabs.addComponent(categoriesTab.getLayout()); 
     layout.addComponent(tabs); 
    } 
    @WebServlet(urlPatterns = {"/administration","/administration/*","/VAADIN/*"},asyncSupported = true) 
    @VaadinServletConfiguration(ui = Administration.class, productionMode = false) 
    public static class AdministrationVaadinServlet extends VaadinServlet 
    { 
    } 
} 
+0

Пожалуйста, не связывайтесь с кодом, вместо этого предоставляйте содержательные фрагменты кода здесь, в вашем вопросе. Вы можете [изменить] его, чтобы добавить код. –

+1

ОК, я редактирую тему. –

+0

Вы следовали за [Vaadin Spring Tutorial] (https://vaadin.com/wiki/-/wiki/Main/Vaadin+Spring)? Я думаю, вы не используете весенний ботинок, поэтому взгляните на раздел «I b - Начало работы с Vaadin Spring без Spring Boot». –

ответ

0

Для того, чтобы классы Vaadin UI Spring управляемых компонентов, вы не можете использовать по умолчанию VaadinServlet вы расширяете в вашем фрагменте кода.

В большинстве случаев вам вообще не нужно представлять сервлет, но прослушиватель контекста в Vaadin Spring автоматически создаст это для вас. Если вам по какой-то причине нужна некоторая настройка сервлета, затем добавьте класс SpringVaadinServlet вместо простого VaadinServlet.

Если вы используете Spring Boot, просто удалите объявление сервлета. То же самое с конфигурацией без загрузки, но тогда вам нужно использовать @EnableVaadin в вашем классе конфигурации. См. Vaadin Spring tutorial для получения дополнительных инструкций по настройке, если вы не используете Spring Boot.

Смежные вопросы