vaadin 访问过滤器中的会话属性
vaadin access session attribute that was put in filter
我有多个过滤器。
在其中一个过滤器中,我得到了这段代码
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.
而我决定在table中显示参数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
。
为什么?以及如何解决这个问题?
你需要另一个 getSession()
:
Object attribute = VaadinSession.getCurrent().getSession().getAttribute("xxxx");
VaadinSession.getCurrent()
的结果是当前 Vaadin 会话 。下一个 getSession()
为您提供 HTTP 会话,这是您的属性所在的位置。
我有多个过滤器。 在其中一个过滤器中,我得到了这段代码
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.
而我决定在table中显示参数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
。
为什么?以及如何解决这个问题?
你需要另一个 getSession()
:
Object attribute = VaadinSession.getCurrent().getSession().getAttribute("xxxx");
VaadinSession.getCurrent()
的结果是当前 Vaadin 会话 。下一个 getSession()
为您提供 HTTP 会话,这是您的属性所在的位置。