- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经在 Icefaces 论坛上问过这个问题,但同时我意识到这是一个更通用的问题。
当我在 MDB 中收到消息时,我想更新 JSF 页面的某些部分。
问题是,如何从 EJB 容器中获取 FacesContext?
在消息处理函数 FacesContext.getCurrentInstance() 中返回 null。
我还尝试使 JSF 托管 bean 成为 MDB,但我不能(似乎您不能在同一个类中拥有两者?)。
因为我是 JSF 世界的初学者,所以我现在有点卡住了。有没有办法让它工作?
(Glassfish v3 + Netbeans 6.8, JSF2 + Icefaces 2.0 alpha2)
最佳答案
FacesContext 是基于 HTTP 请求的,因此仅在 HTTP 请求处理期间可用,甚至只有在请求 URL 与 FacesServlet 的 url 模式匹配时才可用。如果您不在由服务器执行以处理 HTTP 请求的线程内,那么也没有 FacesContext 的方法。在 EJB 容器中,完全没有 HTTP 请求的方法。
从技术上讲,让 EJB 通知 JSF 新消息的唯一方法是让 EJB 对匹配 FacesServlet 的 url 模式的 URL 发出 HTTP 请求,并将消息作为请求参数。您可以使用 java.net.URLConnection
为了这。然后,JSF 可以执行 Comet/HTTP 推送之类的操作,以使用您提到的 IceFaces 方式使用消息更新 View 。
例如。
URL url = new URL("http://example.com/context/poll.jsf?msg=" + URLEncoder(msg, "UTF-8"));
URLConenction connection = url.openConnection();
InputStream response = connection.getInputStream();
poll.jsf
它附加到一个像这样的支持 bean:
@ManagedBean
public class Poll {
@ManagedProperty(value="#{param.msg}")
private String msg;
@PostConstruct
public void init() {
// Do something with msg.
}
public void setMsg(String msg) {
this.msg = msg;
}
}
关于java - 服务器启动的渲染 : EJB -> FacesContext?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2673716/
我正在检查 this template 的代码来自 OmniFaces Showcase app ,当我遇到一个p:selectOneMenu中使用的以下条件时: disabled="#{facesC
我想在 Websphere 上部署一个企业项目。 我得到以下异常。 可能是什么原因? [03.09.12 11:21:05:636 CEST] 0000001a webapp E com
我正在集成 SWF 2.2.1、Primefaces 2.2.1、JSF 2、Spring Security 3、Spring 3.1.0M1。我能够访问 Spring web-flow xml 中提
当我点击应用程序 URL (http://localhost:9082/pages/upload.jsf) 时,浏览器上只显示“Error:500 StackOverflowError”。根据我在这个
当我点击应用程序 URL (http://localhost:9082/pages/upload.jsf) 时,浏览器上只显示“Error:500 StackOverflowError”。根据我在这个
如何在过滤器中检索 FacesContext? 我遵循以下关于如何检索 FacesContext 的文章在 Filter : http://ocpsoft.org/java/jsf-java/jsf-
FacesContext 有何用途? 它具体是在哪里实现的? 最佳答案 引自JSF 2.0 specification第6.1章: FacesContext JSF defines the javax
嗨, 这个问题来自之前的answered提问者 BalusC 。答案摘录如下: This happens only if under the covers a forward by RequestDi
我的jsp页面是:主页.jsp Insert title here Employee Management P
在我的 previous question我遇到了从登录表单显示验证消息的问题。该问题现已解决,但这次我无法显示带有 FacesContex#addMessage 的自定义消息. 使用 JSF + P
莫哈拉 2.2.12 这是接管 FacesContext 实例化的一段代码: FacesContext context = facesContextFactory.getFacesContext
我试图通过在FacesContext类的FacesContext.getCurrentInstance()方法中调用run()来获取Runnable,但它返回null。 public class Ta
同时通过javadoc of FacesContext ,我遇到了这句话 The instance remains active until its release() method is calle
我已经在 Icefaces 论坛上问过这个问题,但同时我意识到这是一个更通用的问题。 当我在 MDB 中收到消息时,我想更新 JSF 页面的某些部分。 问题是,如何从 EJB 容器中获取 FacesC
无法在自生成的线程中获得“FacesContext.getCurrentInstance()”。 需要根据后端流程动态更新组件。通过创建一个线程来监视进程并与 p:poll 一起回调组件更新来实现相同
这个问题在这里已经有了答案: Can I update a JSF component from a JSF backing bean method? (5 个回答) 5年前关闭。 实际上,当出现 k
我正在尝试向 JSF 应用程序添加一些单元测试。此应用程序没有严重依赖任何最佳实践,因此许多服务方法使用 FacesContext从托管 session bean 中提取数据,如下所示: (这是在一个
我有一个问题。我需要知道我的页面是否存在全局错误。这是因为我有 2 个不同的 h:messages (错误容器) 一个将显示业务相关消息,另一个将仅显示验证消息。由于业务需求,有两条消息。 当生成
我在两台不同的机器上有相同的代码。一个在工作,另一个没有!代码在这里...你能发现我错过了什么吗? public void urlParameters() { FacesContext con
问题如下:我需要序列化用户 session ,因此,在服务器重新启动后它仍然存在。 使用 JavaEE 和 Tomcat 7 与 implements Serialized 配合使用效果很好,但问题在
我是一名优秀的程序员,十分优秀!