2013-06-18 4 views
2

Я новичок в Java и Vaadin. Основной проект Vaadin использует web.xml для всех сопоставлений. Если я хочу использовать аннотацию @WebServlet, мне нужно создать внутренний класс, который где-то наследуется от HttpServlet.Избавление от web.xml в Vaadin 7 с VaadinServlet

@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

Нет ли способа избежать этого внутреннего статического класса и вместо этого аннотировать сопоставление запросов непосредственно в классе пользовательского интерфейса? Заранее спасибо – frandevel

+0

@HenriKerola Что такое внутренний статический класс? – Dharmaputhiran

 Смежные вопросы

  • Нет связанных вопросов^_^