VaadinCDIServlet Cookies.get(请求,Constans)

时间:2018-04-17 19:43:38

标签: java vaadin

我在vaadin论坛上找到了代码 并且我不知道他如何获得方法 Cookies.get(request,Constants.VAADIN_THEME_COOKIE_NAME) 有人可以解释一下吗?

public class CustomVaadinCDIServlet extends VaadinCDIServlet {

    @Override
    protected VaadinServletService createServletService( DeploymentConfiguration deploymentConfiguration ) throws ServiceException {
        final VaadinCDIServletService service = new VaadinCDIServletService(this, deploymentConfiguration) {
            @Override
            public String getConfiguredTheme( VaadinRequest request ) {
                final String theme = Cookies.get( request, Constants.VAADIN_THEME_COOKIE_NAME );
                return theme != null && Themes.contains( theme ) ? theme : Themes.VALO_facebook;
            }
        };
        service.init();
        return service;
    }
}

1 个答案:

答案 0 :(得分:1)

对你的想法很多,VaadinRequest扩展了HttpRequest,所以你也可以这样做

Cookie [] cookies = request.getCookies();

(它的javax.servlet.http.Cookie)

然后迭代cookie。

但是如果你只是想知道正在使用的主题,那么在UI中就有方法,即UI.getTheme()

你可以获得UI,例如在您的情况下使用ui = request.getService()。findUI(request)。