jsf - 从 Servlet 访问 JSF ViewScoped 托管 bean

标签 jsf servlets

如何从 Servlet 访问 JSF ViewScoped 托管 Bean?

(假设相关托管 Bean 已经创建,并且尚未销毁)

最佳答案

View 范围的变量存储在view map中在组件树上。要在 View 上下文之外访问此数据,您必须 create a JSF contextrestore the view对于请求。这涉及重写 JSF container 提供的大部分功能。 .

JSF 2 提供了无需页面刷新即可与服务器端状态交互的机制:AJAX tagsJSF JavaScript API 。如果可能的话,我会考虑利用这些。

或者,将数据放入可通过 servlet( session )轻松访问的范围内。

由于 View 状态通常保存在 session 中,因此从技术上讲可能可以从此处访问 View 状态。但这将涉及特定于实现的黑客攻击,这些黑客攻击可能无法在底层框架的升级后继续存在。我什至不会将此视为解决方案。

关于jsf - 从 Servlet 访问 JSF ViewScoped 托管 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12230065/

相关文章:

jsf - 调用 Request.getParts 时无需进行多部分配置。将 @MultipartConfig 添加到 servlet,或者将 multipart-config 元素添加到 web.xml

java - 这是一个很好的做法和选择 :Sending a Hash Map object or a JSON from java servlet to jsp?

java - JAVA如何获取上传速度

jsp - JSF中的简单程序抛出404错误

javascript - JSF:按下回车键时如何提交表单?

jsf - 在h:selectManyCheckbox中使用枚举

java - ViewScoped 的工作方式类似于 RequestScoped - 为什么?

java - Servlet 映射问题 - 我做错了什么?

java - 同步块(synchronized block)未在 servlet 中执行

java - 使用 Jetty(编程设置)的服务器发送事件 (SSE)