vaadin访问会话属性放在过滤器中

时间:2015-02-19 14:34:47

标签: httprequest vaadin httpsession

我有多个过滤器。 在其中一个过滤器中,我已经获得了此代码

HttpServletRequest request = (HttpServletRequest) req;
String url = request.getRequestURI();

HttpSession session = request.getSession();
if (request.getParameter("xxxx") != null)
    session.setAttribute("xxxx", request.getParameter("xxxx"));
chain.doFilter(req, res);

对于UI,我使用VAADIN 7。 我决定在表格中显示参数xxxx的值。 所以我想这样做

Table table = new Table("Data.");
table.setSizeFull();
table.addContainerProperty("Field", String.class, null);
table.addContainerProperty("Value", String.class, null);
table.setStyleName("wordwrap-table");
table.setStyleName("user-table");

Object attribute = VaadinSession.getCurrent().getAttribute("xxxx");

attribute值为null。 为什么?以及如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

你需要另一个getSession()

Object attribute = VaadinSession.getCurrent().getSession().getAttribute("xxxx");

VaadinSession.getCurrent()的结果是当前的 Vaadin会话。下一个getSession()会为您提供 HTTP会话,这是您的属性所在的位置。