2016-08-05 56 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以獲取有關設置的更多說明。