问题标签 [codi]
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.
jsf - 使用 Apache CODI 评估 ResourceHandler 中的 ValueExpression
我的 Web 应用程序在带有 Apache CODI 1.0.1 的 Websphere 8.0.0.2 上运行,我遇到了与 Primefaces 的 ResourceHandler 实现相关的问题。
Primefaces 评估资源处理程序中的值表达式以检索动态内容,原因和方式并不重要。事实是,在 JSF 生命周期中的所有其他内容之前调用 ResourceHandler。
我正在为 bean 使用 ViewAccessScope,它应该使用 ResourceHandler 中的值表达式进行评估。我对其进行了调试,发现 ValueExpression 的 CODI-Wrapper 试图检索 FacesContext 的视图根,或者更准确地说是它的视图 ID。问题是,此时视图根为空,因此评估以 CODI 类中的 NullPointerException 结束。
谁负责这个问题,我应该在哪个问题跟踪器上发布错误?我也很感激有关解决方法的建议:D
jsf-2 - 创建不带 windowid 参数的 JSF URL
在我的 JSF Web 应用程序中,我想创建一个 URL 供用户添加书签或复制。这部分很简单,就像这样:
尽管该链接中包含所需的参数 (recID),但它也包含由 JSF Servlet 生成的windowid参数。有没有方便的方法来生成没有windowid参数的 URL?或者这有什么不同吗?
(这是Mojarra)
jsf-2 - 从 ViewAccessScope 中移除一个 bean
这是用于 JSF 2.0 的 MyFaces CODI JSF-Module v1.0.1
我有一个使用@ViewAccessScoped 后备bean 的JSF 页面,它几乎可以满足我的要求,只是在我完成后它不会消失。该页面是从另一个页面调用的,如下所示:
用户体验是editLocation页面在新窗口或新选项卡中弹出,用户对其进行编辑,如果closeOnUpdate参数设置为 true ,则在完成时调用window.close() 。
这一切都有效。但是,如果用户编辑另一个位置,ViewAccessScoped bean 仍然存在,因此它不会被重新实例化。因此,它永远不会看到参数,而只是根据先前的记录得出它所处的状态。
通过手动擦除浏览器 URL 窗口中的windowid参数,我可以获得一个新的支持 bean。有没有办法从h:link组件中删除它?
或者,有没有办法让bean在点击完成按钮后将自己从它所在的范围中移除?
jsf - Myfaces CODI DefaultErrorView - 任何地方的示例?
我在 Myfaces CODI 中看到了对DefaultErrorView的引用,但像往常一样,文档将一切都留给了想象。我真的发现 CODI 是一个很棒的 JSF 插件,但它会从一些示例中受益匪浅。
可能我天真地希望能够使用以下代码捕获可怕的 ViewExpiredException:
...但是会话超时后发生的所有事情是,当我尝试发出 get 请求(单击 ah:link)时,容器安全性会将我带到登录页面。有谁知道我可以用这个 DefaultErrorView 做什么,有人举个例子吗?
谢谢!
jsf - JSF 2.0 中的对话范围
我正在尝试为我们的应用程序在 JSF 的支持 bean 中实现对话范围。起初,我尝试使用 MyFaces Orchestra。它似乎运作良好。但是,我关心的是应用程序部署在集群环境和会话复制期间的情况。然后,我在考虑 MyFaces CODI 和 OpenWebBeans 是否是更好的选择。
我有两个问题要问:
(1) MyFaces Orchestra 声称它不支持分布式会话。是不是说明在集群环境下效果不好?
(2) MyFaces CODI 部署在集群环境有什么问题吗?我在其文档中找不到任何有关此的信息。
cdi - CODI + WELD:专业化 bean 必须扩展另一个 bean
我有一个使用 JSF 2.0 (impl Mojarra 2.1.6) 的 EE 应用程序。我使用的服务器是 glassfish 3.1.2,CDI 实现是 WELD。有时,当我运行应用程序时,会出现以下异常:
它并不总是发生;当它发生时,如果我再次运行该应用程序,它就可以正常工作。但这很烦人,我想知道为什么会这样。有人知道吗?
jsf-2 - SFSB 被移除
我正在使用 JBoss6.1.Final、JSF 2.0 (Mojarra)、Weld CDI、MyFaces CODI 1.0.5(用于视图访问范围)
我正在使用类似于Real World Java EE Patterns Rethinking Best Practices中的网关模式(不幸的是我没有它,所以我可能在这里搞砸了)。基本上,该应用程序允许用户进入“编辑模式”并编辑在具有扩展持久性上下文的 @ViewAccessScoped 支持 bean 中维护的人员列表(创建、编辑、删除),然后单击刷新的“保存”命令链接他们对数据库的所有更改。起初我遇到了 ViewExpiredExceptions 的问题(如果浏览器在会话超时期间空闲,然后执行了进一步的请求),但我添加了一些 jQuery 来向保持会话活动的 servlet 发出 get 请求(称为 10会话超时前的秒数)。这似乎工作但现在我有另一个问题,支持 bean 也是一个 SFSB,经过一段时间的空闲时间,
13:06:22,063 严重 [javax.enterprise.resource.webcontainer.jsf.context] javax.el.ELException:/index.xhtml @27,81 渲染 =“#{!conversationBean.editMode}”:javax.ejb.NoSuchEJBException :找不到有状态的bean:43h1h2f-9c7qkb-h34t0f34-1-h34teo9p-de
关于如何防止 SFSB 删除或至少更优雅地处理它的任何想法?
这是我的支持bean:
这是 Person 实体 bean:
这是视图:
这是一个用于保持会话活动的 servlet(在会话过期前 10 秒由 jQuery ajax 获取请求调用):
session - Java EE 6 并发会话和共享
我正在使用 Java EE 6(JSF CDI EJB)开发一个 Web 应用程序,该应用程序不允许并发登录(相同的用户和密码)。
我喜欢的是:
如果用户登录两次,则第一个会话需要失效,并且旧会话数据(包括所有具有 SessionScope 的 CDI Bean 或来自 Apache CODI 的 WindowScope 等其他范围)被传输到新会话。
这有点像想要的会话劫持方法:-)
java - 在 JBoss 7 中使用 MyFaces CODI
我使用 JBoss 7 和 JSF 2.0 (Mojarra) 和 Weld 作为 CDI。JBoss 已经提供的一切。另外,我在包中添加了 Primefaces。所以到目前为止,我的项目是:
JBoss 7 + JSF 2.0 + Primefaces + 焊接
但是,我觉得 Weld(和 CDI)上缺少 JSF ViewScope,所以我只是将 MyFaces CODI 添加到我的项目中。但我感觉我现在混合了很多东西,我不知道什么是什么。所以我有几个问题:
1 - 将 MyFaces CODI 添加到项目中只是 CDI,或者我也在更改 Mojarra?
2 - 添加 MyFaces CODI 也会使 Weld 无效,或者我将 CODI 用于 ViewScope,而 Weld 用于其他(请求、应用程序、会话等)?这是一个好主意吗?
希望你能理解我的问题并帮助我=P
jsf-2 - 使用 WELD + Apache CODI 部署应用程序时出错
我将 myfaces-extcdi-core-api-1.0.5.jar 和 myfaces-extcdi-core-impl-1.0.5.jar 添加到类路径中,将少数 bean 标记为 ConversationScoped,现在启动 JBoss 时出现以下错误7.1.0 服务器:(可能是什么原因???)