gpt4 book ai didi

java - 如何在托管 bean 中设置或注入(inject)请求参数?

转载 作者:行者123 更新时间:2023-12-01 16:59:07 26 4
gpt4 key购买 nike

我正在使用多个 PrimeFaces <p:remoteCommand/>调用页面上的各种操作监听器。在 javascript 调用中,我传递参数。这些参数到达请求参数映射。

现在,我可以从操作监听器本身的映射中提取参数。然而,我希望 Action 监听者不必这样做。相反,他们应该只是检查 bean 中的相应值是否不为 null 并采取相应的行动。

我想将其集中在单个事件中,或者更好的是,以某种方式将请求参数值自动注入(inject)到 bean 中。

所以我的问题是:

  1. 是否有一种事件类型可供我在调用任何操作监听器之前处理请求参数?
  2. 更好的是,有没有办法自动将请求参数注入(inject)到 bean 属性中?

最佳答案

如果托管 bean 是请求范围的,那么您可以使用 @ManagedProperty 为了这。请求参数映射已经在 #{param} 可用的 EL 上下文中.

@ManagedProperty("#{param.foo}")
private String foo;

如果托管bean的范围更广,则不能使用@ManagedProperty为了这。但是,如果您正在使用 CDI 或可以使用它,那么您可以 homegrow对此的注释。

@Inject @HttpParam
private String foo;

更广泛范围内 JSF 托管 Bean 的替代方案是 <f:viewParam> 标签。我只能根据经验无法判断这是否可以与 <p:remoteCommand> 结合使用。 ,但理论上它应该工作得很好。另请参阅ViewParam vs @ManagedProperty(value = "#{param.id}") .

关于java - 如何在托管 bean 中设置或注入(inject)请求参数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9337433/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com