问题标签 [requestscope]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
451 浏览

jsf - 使用 RequestScoped Bean 和渲染属性的正确方法是什么?

有人知道如何在 jsf 中使用 RequestScoped bean 和渲染属性吗?渲染属性在 applyValues 阶段之前进行评估,因此未正确评估。我不想保留任何状态。该示例可以是带有数据表和按钮的 outputPanel。数据表获取值列表。包装 outputPanel 具有如下渲染属性:

加载页面并单击按钮后,没有任何反应,因为视图已恢复并评估表达式 - bean 确实有一个空数据列表,因此不应呈现面板。这导致甚至没有调用操作方法 - 因为按钮不存在。

0 投票
2 回答
3383 浏览

session - JSF 在 Request Scoped Bean 中注入和访问 Session Scoped ManagedBean

我有一个@SessionScoped ManagedBean,我已将其注入@RequestScoped 以访问存储在会话中的用户。我的代码正在运行我只想知道我是否使用了一个好的做法,如果没有,你能告诉我有什么问题吗?因为我是 JSF 的新手,我不想从一开始就学习一些糟糕的编码,所以提前非常感谢你。

我的实体用户:

我的实体农场:

我的@Statless DAO:

我的登录豆:

我的 ListeFermesBean :

登录.xhtml:

最后是按存储在会话对象中的用户 IDlisteFermes.xhtml显示列表的页面。listeFermesBeanUser

0 投票
1 回答
1339 浏览

java - 使用@RequestScoped bean 将标头值从 Web 层传递到 EJB?

我应该将一些带有 HTTP 标头的信息从请求传递到 EJB,并且我不想添加参数并将它们传递到我需要它们的任何地方。所以我使用 RequestScoped bean 来保存我的标头值。这个实现可以吗,还是我误解了@RecuestScoped bean 的概念?

首先,我使用拦截器(Resteasy)获取标头,并将它们保存到我的请求范围bean 中:

这是豆子:

然后我可以从我的 EJB 访问值(在每个请求中都不同):

根据@RequestScoped的描述,这应该可以按预期工作:

请求范围处于活动状态:

  • 在 Web 应用程序中任何 servlet 的 service() 方法期间,在任何 servlet 过滤器的 doFilter() 方法期间以及当容器调用任何 ServletRequestListener 或 AsyncListener 时,
  • 在任何 Java EE Web 服务调用期间,
  • 在任何 EJB 的任何远程方法调用期间,在任何 EJB 的任何异步方法调用期间,在对 EJB 超时方法的任何调用期间,以及
  • 在消息传递到任何 EJB 消息驱动 bean 期间,以及在任何消息传递到从 Java EE 组件环境获得的 JMS 主题或队列的 MessageListener 期间。
0 投票
0 回答
67 浏览

caching - Ninject InRequestScope 有时似乎返回错误的实例

我正在开发一个MVC 5 application用于Ninject处理依赖注入的。该应用程序定义了一个SecurityService提供有关当前登录用户的各种信息。我正在使用 Windows 身份验证。

好的,让我们深入研究代码。

NinjectWebCommon.cs

请注意kernel.Bind<ISecurityService>().To<SecurityService>().InRequestScope();安全绑定定义。

安全服务.cs

我的问题是,即使SecurityService每个请求都实例化,有时我会收到一个_CurrentUser.Username不同的实例currUsername(即两者都是我执行测试的有效 A/D 用户)。

当前的解决方法是必须!_CurrentUser.Username.Equals(currUsername)使缓存的用户实例无效,如果请求身份验证的用户与缓存的用户不同,但我想知道发生了什么。

只是出于好奇,我检查InThreadScope并遇到了同样的问题,但我认为这可以通过 IIS 使用的线程池可能为另一个请求提供相同的线程这一事实来解释。

有谁知道为什么 InRequestScope 会这样?

谢谢。

[编辑]

当前用户与缓存用户不同时调用堆栈:

ProjectName.Models.dll!ProjectName.Models.SecurityService.GetLoggedUserData() 第 54 行 C# ProjectName.Models.dll!ProjectName.Models.SecurityService.GetAndCheckUserData() 第 76 行 C# ProjectName.Models.dll!ProjectName.Models.SecurityService.IsAdmin。 get() 第 98 行 C# ProjectName.Models.dll!ProjectName.Models.EntitiesCache.ProjectStatuses.get() 第 51 行 C# ProjectName.Services.dll!ProjectName.Services.ProjectService.CreateSelectorsDomain() 第 253 行 C# ProjectName.Services.dll! ProjectName.Services.ProjectService.ProjectService(ProjectName.Models.ISecurityService securityService, ProjectName.Models.IEntitiesCache entityCache, ProjectName.Models.IScopedDataAccess dataAccess, ProjectName.Services.IProjectTemplateService projectTemplateService) 第 33 行 C# [外部代码] ProjectName.Web.dll!ProjectName .Web。NinjectWebCommon.PerformInjectionOn(object instance) Line 93 C# ProjectName.Web.dll!ProjectName.Web.BaseController.BaseController() Line 21 C# [外部代码]

同步中所有步骤的逻辑 (no async, await, no Tasks)

0 投票
0 回答
41 浏览

jsf - JSF bean 不止一次创建

当我打开 jsf 页面然后catalog bean创建两次。那么为什么会发生呢?jsf页面:

豆:

0 投票
1 回答
94 浏览

jersey - 在没有 ServletModule 的情况下使用 RequestScope

我正在探索@RequestScoped并想知道是否有办法在不安装ServletModule. 我正在使用 Guice 3.0 + Jersey 1.17,可能不想使用GuiceContainer& GuiceServletContextListener

我希望根据 Jersey 请求中的某些用户输入来创建每个请求的对象(注入)。可能吗?GuiceContainer如果我必须ServletContextListener用 Guice替换现有的,那么使用的性能和安全考虑是什么?

如果有一种RequestScope根据我的需要使用的方法,你能给我一些相同的参考吗?

0 投票
1 回答
611 浏览

spring - 在请求线程完成之前调用 Spring RequestContextListenerrequestDestroyed

ServletRequestListener在使用弹簧驱动的 Web 应用程序时遇到问题。我有这个(见下文)作为RequestContextListener(基本上是来自 spring 的副本,RequestContextListener除了参数falsegot true)。似乎requestDestroyed在实际的 web 方法完成之前调用了它。

问题:只有tomcat启动后的第一个调用成功。它失败是因为userProvider.get()超出了请求范围。它是一个请求范围的 bean。这是错误:无法请求请求属性 - 请求不再处于活动状态!

我有这个作为球衣网络资源:

这是两个顺序调用的输出:

我认为我的设置有问题。任何人都可以帮忙吗?我的专业知识已经走到了尽头。

这是设置:

春天 4.2.6。glassfish 球衣 2.16 Tomcat 7.0.69。我已经尝试过使用最新的球衣。但同样的结果。

0 投票
0 回答
420 浏览

spring - Spring:测试requestscoped bean方法已被调用

我目前正在使用 Spring Boot 1.4。我正在创建我的测试,但需要一些帮助来解决以下情况:

我有一个请求范围的 bean,为了简单起见,假设它是一个简单的 POJO,带有一个属性、一个 setter 和一个 getter。我想创建一个测试以确保该 bean 的设置器在请求中被调用一次且仅一次。

这是我的方法:

但是测试失败,说明从未调用过“setaProperty”。

我还检查了 myRequestScopeBean.getaProperty 值,但始终返回 null。

我猜问题是控制器中注入的 MyRequestScopeBean 的实例在“执行”结束后不再存在,因此,它与我的测试中注入的不一样。

有什么方法可以检查是否在请求中调用了这个 setter 方法?

提前致谢!

0 投票
1 回答
3492 浏览

spring - 请求范围 bean 的实例化

Spring 中的请求范围 bean 意味着容器为每个 HTTP 请求创建一个 bean 实例。

假设我有一个 RequestScopedBean bean:

配置 :

我在 Singleton bean 中使用我的RequestScopedBean -期望为每个传入的 HTTP 请求调用 init() 方法。但事实并非如此。init() 方法只被调用一次,这意味着容器只创建我的RequestScopedBean的一个实例!!!有人可以向我解释一下:如果我期望的行为是正确的/或者配置有什么问题。

0 投票
1 回答
292 浏览

spring - XML-config中方法的Spring RequestScope

我有一个包含以下内容的模块:

IUser是一个接口,这适用于所有使用此 bean 的 java-config 模块。@Autowired IUser user

但是,我们有一个带有 xml-config 的旧项目。在那里,bean 在部署时初始化(当然是空的),但是在请求时没有代理来获取正确的用户。

我现在写的(这显然是不正确的):

我需要在 XML 中的 UserHolder: getUser 中定义 bean。但这会返回一个接口,所以我不能在那里定义类......

定义 UserHolder 的模块的 Spring 版本是:

  • 春天:4.2.6.RELEASE
  • 弹簧安全:4.1.0.RELEASE

使用 UserHolder 模块的带有 xml-config 的模块的 Spring 版本是:

  • 春天:3.2.15.RELEASE
  • 弹簧安全:3.2.9.RELEASE

任何帮助,将不胜感激!

谢谢!