我问的是与How to access ServletContext
from within a Vaadin 7 app?相同的问题,但对于Vaadin 14。
在Vaadin 7中,Vaadin提供了简单方便的调用:
ServletContext
Vaadin 14中的ServletContext servletContext = VaadinServlet.getCurrent().getServletContext();
上不再存在该特定调用。
➥Vaadin API中的其他地方是否有等效项?
我的最终目标是使用键值“属性”集合来保留对我的应用范围内对象的引用。
这可能不是最好的方法,但似乎对我有用。
VaadinServlet
类,扩展了VaadinServlet
,提供了VaadinServletService
。该方法返回一个VaadinServletService
对象。为此,我们可以调用com.vaadin.flow.server.VaadinService
返回所需的com.vaadin.flow.server.VaadinService
。
getCurrentServletRequest()
您可以从那里使用键值“属性”集合。使用getCurrentServletRequest()
对象作为键,并以javax.servlet.http.HttpServletRequest
作为值,查看javax.servlet.http.HttpServletRequest
,javax.servlet.ServletRequest.getServletContext
和javax.servlet.ServletRequest.getServletContext
方法。
保存。
javax.servlet.ServletContext
正在检索。 [属性]的键值集合将值保留为javax.servlet.ServletContext
,因此我们必须强制转换为预期的类/接口。
ServletContext servletContext =
VaadinServletService // com.vaadin.flow.server.VaadinServletService
.getCurrentServletRequest() // Returns a javax.servlet.http.HttpServletRequest
.getServletContext() // Returns a `javax.servlet.ServletContext`.
;