2014-05-18 50 views
0

我正在嘗試Vaadin。我開發了兩個班。在這兩個班,我擴大了的servlet類似於下面的代碼:vaadin顯示錯誤的類

@VaadinServletConfiguration(productionMode = false, ui = <CurrentClassName>.class) 
public static class Servlet extends VaadinServlet { 
} 

當我運行第二類,它總是表現出從第一個UI。我嘗試重新啓動Tomcat,但它仍然是一樣的。 例如

http://localhost:8080/hms/servlet/com.test.ui.TestClass2$Servlet 

我試着創建一個新類,當我運行它,甚至顯示第一個的用戶界面。

請幫助理解和解決問題。

謝謝!

回答

0

創建類MyUIProvider,它擴展了基本的UIProvider並覆蓋了getUIClass方法。

例如:

public class MyUIProvider extends UIProvider 
{ 
    @Override 
    public Class extends UI> getUIClass(UIClassSelectionEvent event) 
    { 
     // imlement UI class choosing logic here 
     return MyUI.class; 
    } 

比在web.xml中添加的init-參數去你的VaadinServlet:

... 
    <servlet> 
     <servlet-name>VAADIN</servlet-name> 
     <servlet-class>com.vaadin.server.VaadinServlet</servlet-class> 
     <init-param> 
      <param-name>UIProvider</param-name> 
      <param-value>your.package.MyUIProvider</param-value> 
      <description>Your custom UIProvider</description> 
     </init-param> 
    </servlet> 
... 
+0

嗨,你的意思我需要爲每一個UI類創建做到這一點?而且,這個類已經從Vaadin的'UI'類延伸。 –

+0

根據需要創建儘可能多的UI類。接下來,在什麼條件下返回UI類,在getUIClass方法中實現邏輯。 – user3551612