问题标签 [requestcontext]

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 投票
0 回答
2638 浏览

javascript - RequestContext.getCurrentInstance().execute() 不执行 Javascript 函数

我一直在摆弄这个,但一直无法让它工作。可能有一些我没有正确理解的东西。我想从我的托管 bean 的 Java 代码中调用一个 Javascript 函数。onSubmit 方法是这样的:(通过设置断点,我知道这段代码正在执行)

showOrHideModal 函数位于 xhtml 头部的 .js 文件中。xhtml 上的按钮如下所示:

我在 bean 中需要这段代码的原因是因为我需要稍后运行一些验证并有条件地执行这个 Javascript 以显示一个模式窗口。

当我在调试时单击按钮时,我没有得到任何反馈,因此很难开始寻找问题。我什至在 Javascript 函数中添加了 console.writeLine。如果有帮助,我的 IDE 是 IntelliJ 14.1.4 - 我很想找到一种调试方法。

此外,如果您对我的整体问题有其他解决方案,请告诉我。我可能在这个问题上形成了隧道视野。

0 投票
0 回答
398 浏览

multithreading - 使用 primefaces 树进行线程化

我在将大型数据集加载到 primefaces 树时遇到问题。

背景

我有一个大数据集,一个大的哈希图列表是具体的。我需要遍历列表的每个元素以在 PostConstruct 方法中构建树,以便显示素面。仅循环遍历列表大约需要 4 分钟。

我是如何处理这个问题的

所以,我想到了在多个线程之间划分循环(是的,这个上下文中的进程是可分割的)以提高性能。我创建线程,其中每个线程循环遍历树的一部分列表构建部分(每个线程每个循环一个树节点)。这使得处理时间缩短到大约一分钟。我想通过在启动时显示树的一部分(如 100 个节点)来进一步增强解决方案,然后让线程完成它们的工作,以保持页面对最终用户的响应。每个线程,在每个循环之后(即在创建树节点之后),都​​应该为 primefaces 触发某种事件(触发方法)以使用新创建的节点更新树。这就是我需要帮助的地方。

问题

我找不到以编程方式告诉 primefaces 更新树的方法。我了解到 RequestContext 用于此目的,但问题是从另一个线程调用它时它会失败。所以我想知道你是否有更好的方法来解决这个问题,或者告诉我我错过了什么。

简单的演示代码

xhtml 文件看起来像这样

托管 Bean 看起来像这样

后台线程如下所示:

这在向树中添加新项目方面确实有效。但是我不能调用任何东西来以编程方式更新primefaces中的树。我的意思是,对象根(托管 bean 中的 TreeNode 类型)得到更新,但这并没有反映在 xhtml 页面中。

眼镜

我正在使用 JSF 2.2 和 primefaces 5.3。

0 投票
3 回答
1012 浏览

javascript - Primefaces:RequestContext.execute - Javascript 调用了两次

我正在使用 primefaces,并且在 ajax 调用结束时执行 JavaScript 时遇到问题。我在 RequestContext 中添加了一些动作,它被执行了两次!

它还在我从服务器返回的 XML 中嵌入了两次——两次是相同的组件和相同的节点。

Primefaces 版本是 5.3.10

任何想法这里出了什么问题?谢谢。

0 投票
2 回答
3283 浏览

javascript - How to execute javascript function which uses the callback parameters on the server/client side?

I use a JSF 2.2, a Primefaces 6.0 and a CDI. One of my page includes a script which has got two javascript functions (one of them create a chart, second of them supply new data to the chart) and a simple form which works as a filter. I've cut my code (look at below) to show you the most important part of my code.

I would like to achieve something like this:

  • For the first time when the page is loaded/opened, the first javascript function should run (automatically without any pressing the button or the link) and should use several callback parameters which I set in the cdi bean.
  • Each time when I press the button, the second javascript function should run and should use several callback parameters which I set in the CDI bean.

How you see, the above mechanism is based on passing some values from the CDI bean to the javascript by means of the RequestContext. To achieve this I based on the primefaces documentation (chapter 11.1). So far, I've:

  • created several callback parameters for the first function in the init() method (which has the @PostConstruct annotation) of the CDI bean;
  • added the oncomplete attribute to the <p:commandButton> component which calls second of the function with args parameter. The values which I want to pass to the second function are prepared in actionFilterButton() method which I call in action attribute of the button.

At the moment my page works like this:

  • When the page is loaded/opened, the first javascript function isn't executed.
  • When I press the button, the second javascript function is executed and it saves the values of the callback parameters in the javascript variables.

How you see, the problem is the first stage. The first javascript function isn't executed when I open my page.

How can I call the first javascript function?

What did I try?

  • I tried to call the first javascript function on the server side calling requestContext.execute("firstFunction(args)"); in the init() method in hope it'll be worked but it isn't work and it breaks my form when I use the form. I'm not sure if I can put args as I did it on the server side (indeed I'm not sure if it is interpreted correctly).
  • I also tried to call firstFunction() at the end of my script (how you see below), but it isn't work as well.

My xhtml page:

Part of my CDI bean:

0 投票
1 回答
2282 浏览

java - RequestContext.getCurrentInstance().update 不起作用

我有一个带有命令按钮的 JSF 页面来显示对话框并显示数据表中的数据,但是问题 RequestContext.getCurrentInstance().update 没有更新对话框,谁能告诉我我的代码有什么问题?

这是我的 JSF 代码

这是我的托管豆

0 投票
0 回答
1168 浏览

java - 跨线程的 Spring mvc 请求范围上下文

在 Spring MVC Web 应用程序中,我想将用户信息存储在请求范围内,在文件管理器拦截器中,我将构建用户信息并将其存储并稍后在此请求中使用它。我知道在 spring 中我可以创建请求范围 spring beans,但是这些bean只能在请求线程中访问(可能是子线程)。但是我会在线程池中访问用户信息。所以构建请求范围的spring bean可能不适合我。请求范围内线程间存储信息共享有什么tips?</p>

0 投票
1 回答
23 浏览

django - Django:上下文的某些方面在实时环境与本地环境中无法正确传递

我遇到了一个奇怪的问题,即我认为上下文中的某些值不会仅在生产环境中传递给模板。采取以下观点:

product_category 值没有在实时环境中传递,尽管在我的本地环境中传递得很好。除了在页面上呈现产品之外,该值的目标是在页面中的元素上触发活动状态。值得注意的是 products 对象正在按预期传递并呈现。

0 投票
0 回答
562 浏览

c# - WCF 服务单元测试中的模拟 OperationContext.Current.RequestContext

任何人都可以建议如何在 WCF 服务中模拟“RequestContext”。

我目前正在开发一个严重依赖于请求上下文中设置的标头的遗留 WCF 服务。

下面我有一个我想测试的工厂,但我正在努力模拟请求上下文。

注意:我正在使用 Moq 来模拟其他依赖项。

谢谢,

0 投票
2 回答
183 浏览

java - 野蝇 10 | 暗流| 创建可访问 RequestContext 的 Wildfly LoginModule

我正在尝试为可以访问请求上下文的 Wildfly 10 创建一个登录模块。我必须确定请求 url。我还必须分析 GET 参数以检查是否设置了令牌。

如何访问基于“UsernamePasswordLoginModule”的类中的请求上下文和 url 信息?

我试过这个

@Resource WebServiceContext wsctx;

但它不起作用。

0 投票
0 回答
958 浏览

javascript - Primefaces 对话框架:RequestContext.execute - Javascript 调用了两次

我想从对话窗口的bean调用一个javascript,但它执行了两次!

我使用 RequestContext.getCurrentInstance().execute() 方法。如果页面不是“对话框框架”,则此方法可以完美运行,但在外部页面对话框窗口中,javascript 会执行两次。

父页面:

父bean:

对话页面:

对话 bean:

faces-config.xml:

两次执行 javascript 的更大问题是 RequestContext.getCurrentInstance().closeDialog(..) 方法也关闭了两次,因为它调用了原生 PrimeFaces.closeDialog({pfdlgcid:'#{param.pfdlgcid}'}) 脚本如果您使用嵌套对话框,它也会关闭父对话框窗口,而不仅仅是子对话框。

Primefaces 版本是 6.1 服务器是 Payara,浏览器是 Chrome。

任何想法这里出了什么问题?提前致谢!