2016-08-05 35 views
0

我现在正在使用Spring + Vaadin JSP集成。我正在为互联网商店管理面板工作。 我已经完成了Spring服务器并成功添加了Vaadin UI,但在vaadin UI中注释(@Autowired等)不起作用,因为服务器分为两个servlet(dispacherServlet和vaadinServlet)。大部分服务器页面都使用dispacher servlet,只有管理面板与Vaadin一起工作。我需要将JPA Repository和Service连接到vaadin UI。你能帮我解决它并将服务连接到用户界面。 UI类:Spring + Vaadin注释@Uutowired 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)?我猜你不使用弹簧引导,所以看看“我b - 没有Spring Boot的Vaadin Spring入门”一节。 –

回答

0

为了Vaadin UI类Spring管理豆,VaadinServlet您在您的代码段延长,你不能使用默认值。

在大多数情况下,您实际上并不需要展示servlet,但Vaadin Spring中的上下文侦听器会自动为您创建。如果由于某种原因需要对servlet进行一些定制,那么扩展SpringVaadinServlet类而不是普通的VaadinServlet。

如果您使用Spring Boot,只需删除servlet声明。与非Boot配置一样,但是您需要在配置类中使用@EnableVaadin。如果您不使用Spring Boot,请参阅Vaadin Spring tutorial以获取有关设置的更多说明。