2013-06-18 21 views
2

我是Java和Vaadin的新手。一个基本的Vaadin项目对所有映射使用web.xml。如果我想使用@WebServlet注释,我需要创建一个内部类,该类继承HttpServlet用VaadinServlet去除Vaadin 7中的web.xml

@SuppressWarnings("serial") 
public class VaadinplaygroundUI extends UI { 

    @WebServlet(urlPatterns="/Helo") 
    public static class Servlet extends VaadinServlet { 

    } 

    @Override 
    protected void init(VaadinRequest request) { 
     final VerticalLayout layout = new VerticalLayout(); 

我知道,我错过在内部类Servlet一些覆盖方法得到它的工作,但我不知道是哪个。在Vaadin 6.x的互联网中有很多例子,其中内部类扩展为AbstractApplicationServlet

感谢您的任何帮助。

回答

7

下面是7.x版:

public class MyUI extends UI { 

    @WebServlet(value = "/*", asyncSupported = true, initParams = { 
      @WebInitParam(name = "ui", value = "com.example.MyUI"), 
      @WebInitParam(name = "productionMode", value = "false") }) 
    public static class Servlet extends VaadinServlet { 
    } 

    @Override 
    protected void init(VaadinRequest request) { 
     .. 
    } 
} 

而对于7.1和更高版本:

public class MyUI extends UI { 

    @WebServlet(value = "/*", asyncSupported = true) 
    @VaadinServletConfiguration(productionMode = false, ui = MyUI.class) 
    public static class Servlet extends VaadinServlet { 
    } 

    @Override 
    protected void init(VaadinRequest request) { 
     .. 
    } 
} 
+0

真棒!谢谢! –

+0

是否有任何方法可以避免使用此内部静态类,而是直接在UI类上注释请求映射?在此先感谢 – frandevel

+0

@HenriKerola内部静态类的用途是什么? – Dharmaputhiran