2014-05-18 49 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