问题标签 [jsf-2.3]
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.
jboss - 无法在 CDI @RequestScoped 托管 Bean 中注入 ExternalContext 或 RequestParam
在网上搜索我发现应该可以将一些方便的 JSF 对象@Inject 到 CDI bean 中,这些对象应该由 JSF 生成并通过 javax.faces.annotation.* 中的限定符公开(如 @RequestMap 或 @SessionMap)。
但是,我无法将这些资源@Inject 注入 CDI Bean。即使注入ExternalContext
或FacesContext
失败,如 JSF 2.3-spec 中所述,@Inject 以及以下内容应该是可能的:
- javax.faces.application.ResourceHandler
javax.faces.context.Flash
javax.servlet.http.HttpSession <--这个正在工作
应用程序启动时显示的错误:
在注入点 [BackedAnnotatedField] @Inject report.SimpleRequestParamReportProvider.facesContext 具有限定符 @Default 的类型 FacesContext 的依赖关系不满足
我正在使用符合 JSF 2.3 的JBoss EAP 7.2 https://access.redhat.com/articles/113373
有没有其他人遇到过同样的问题?有什么我想念的吗?
编辑 这是我正在使用的 WEB-INF/faces-config-xml
编辑 2:一旦我添加了 @FacesConfig 注释的 java 类,JSF 对象的注入就可以工作:
jakarta-ee - WELD-001408: Unsatisfied dependencies for type ExternalContext with qualifiers @Default
I am using JSF 2.3, PrimeFaces 6.2, WildFly 10, and JEE7. Upon deploying my application , I am getting the exception above, altough according to
https://arjan-tijms.omnifaces.org/p/jsf-23.html
this should not cause exception. Below is my source code:
My pom.xml:
What could be the problem? Thank you!
jsf - 使用时设置控制器属性的正确方法
我有一个很大的表单,需要在多个页面中重复使用。因此,我决定创建一个
<ui:composition>
包含表单并将其包含在某些页面(page1.xhtml 和 page2.xhtml)中。
表单.xhtml:
此表单有一个名为 的控制器FormController
。
在 page1.xhtml 和 page2.xhtml 中,我只使用<ui:include>
标签包含表单:
我需要在 FormController bean 中初始化一个属性,因此,在 page1.xhtml 中我决定使用我需要的 Id 设置一个属性(例如 5):
在控制器中,我只得到这个属性的值:
直到知道,一切正常。但是在 page2.xhtml 中,bean 属性的“初始化”必须在 ajax 请求之后完成,所以我使用了以下代码:
奇怪的是,这仅在我第一次在<h:selectOneMenu>
. 第二次,该doSomething()
方法被调用但面板没有呈现(我不知道为什么,你知道为什么吗?),所以我决定探索以下在两个页面中都运行良好的替代方案,但我觉得它不是一个很好的解决方案:
如您所见,我只是用我需要的参数调用一个init
方法(在 之前)。<ui:include>
在控制器中,我只是设置属性并执行相应的查询:
你对这个解决方案有什么看法?
java - 使用 java ee 8 security-api 登录 Wildfly 集群
我们正在尝试使用 JEE8 安全 API 创建一个 wildfly 16 高可用性集群。项目可以作为独立应用程序很好地工作,但不能作为集群!我们得到了一个 infispan NotSerializableException。
我们有一个带有 jsf 2.3、CDI 2.0 和 Soteria 的 Wildfly 16 独立应用程序。这作为独立运行良好。现在我们想将此配置作为独立的 wildfly-cluster 运行。野蝇来了,他们彼此认识。
但是当我们调用我们的应用程序时,我们得到以下异常: java.lang.IllegalArgumentException: org.infinispan.commons.marshall.NotSerializableException: org.glassfish.soteria.servlet.RequestData
如果需要,我们可以发布整个堆栈跟踪。
如果我们从 web.xml 中删除“可分发”,它将毫无例外地工作,但我们无法在实例之间共享会话。
我们是否缺少一些配置?还是我们有另一个误解?
谢谢您的帮助
从 2019 年 7 月 3 日开始编辑:
正如我现在所看到的,问题出在 Soteria Impementation 中。我在 github 上找到了以下提交:“ https://github.com/eclipse-ee4j/soteria/commit/fd9a29c4452f99b426dabc296ec759d36766a56f ”。现在对我来说的问题是,这什么时候才能生效?它有哪些替代方案,以实现对资源的基于角色的访问并将未经身份验证的用户重定向到自定义登录页面?
cdi - 升级到 JSF 2.3 后,具有属性/注入的自定义转换器不再使用
我正在尝试升级/使用与 JSF 2.2(在 Wildfly 13 上)一起工作的自定义转换器以在 JSF 2.3 上工作(在 Wildfly 17.0.1 上运行 Mojarra 2.3.9.SP02)
转换器通过标签库中定义的自己的标签使用。只要不使用标签属性,一切都很好。只是没有在转换器中设置属性。二传手永远不会被调用。但是,如果我managed = true
从转换器中删除了属性,那么注入将不再起作用。
转换器是这样使用的:
标签库:
这是转换器代码:
面孔-config.xml:
而且我还像这样明确声明 JSF 2.3:
豆类.xml:
jsf - JSF 面临流抛出错误“流已存在”
我的环境:
JSF 2.3,莫哈拉 2.3.9.payara-p2
PrimeFaces 7.0
帕亚拉 5.192
OmniFaces 3.3
Java EE 8 Maven 项目
NetBeans 11.1
我创建了一个 Faces 流程:
文件夹“flotTransfer”仅包含 2 个文件(目前)flotTransfert-flow.xml 和 flotTransfert.xhtml。
我无法部署应用程序。我收到此消息:“加载应用程序时出现异常:java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.IllegalStateException: Flow with id "flotTransfert"并且定义DocumentId "" 已经存在。|#] "。
我不明白为什么会出现此错误(为什么“已经存在”?)。服务器上没有部署其他应用程序。
flotTransfert-flow.xml 的内容:
如果我重命名此文件,则不会再出现错误,并且应用程序已部署在服务器上,但显然,人脸流程不起作用。
如果我保留文件但删除文件的所有内容(我注释掉所有行),我会得到同样的错误。
我在另一个应用程序中具有几乎相同的面孔流(文件夹中只有更多页面),但使用 Java EE 7 和 Payara 5.184 并且没有 OmniFaces 并且流程有效。
jsf - 目标无法访问,标识符“用户”解析为空 - 经过详尽研究后不确定出了什么问题
前言:我已经彻底查看了大约 10 篇不同的相关 stackoverflow 文章,如下面的文章,没有一篇能解决我的问题。所以我展示了完整的代码,看看是否有人知道我的项目可能出了什么问题。请不要将此标记为重复,因为我已经对此类其他文章进行了详尽的研究。
识别和解决 javax.el.PropertyNotFoundException: Target Unreachable
Java EE 6:目标不可达,标识符“helloBean”解析为空
当我尝试运行以下 JSF 应用程序(这是一个非常简单的 Web 应用程序)时,我得到的确切错误是
即使在查阅了大量其他 stackoverflow 文章之后,我也不知道如何解决这个问题。我得出以下结论:
1)如果代码有错误,那么我不知道是什么问题,所以请指出,谢谢!
2) 如果代码对您来说看起来不错,您能否在您自己的机器上重新构建它,看看它是否可以正确部署?我有一种感觉,它可能与代码无关,因为我确实尝试了很多不同的变体。
使用的工具:我正在使用 Eclipse、Java 11、JSF 2.2、Servlet 3.1、Wildfly 17
用户Bean.java
索引.xhtml
欢迎.xhtml
web.xml
面孔-config.xml
但是,Web 项目显示了这一点(请注意,“Beans”文件夹或“类”文件夹下没有文件。不确定这是否应该发生,因为我是 JSF 的新手)。如果这是正常现象,请忽略。我只是想包含尽可能多的信息
jsf - 简单的 jsf 命令按钮适用于除主页之外的每个页面
一个 Java EE 8/SE 8 Web 应用程序在 Glassfish 5 build 25 生产和开发上运行,使用 jsf 2.3。用户创建帐户并登录。有一个“注销”按钮用于注销。
问题:“注销”按钮在网站上的任何地方都按预期工作。除了主页 (example.com) 和 (example.com/home.xhtml)。我的本地计算机上不存在该问题。仅在生产中(example.com)。
所以我有一个名为: index.xhtml 的模板。所有页面都使用它,包括 home.xhtml:
和
用户登录和注销相当容易,直到我注意到单击主页(home.xhtml)上的注销会打印空指针异常并重定向到 404 错误页面。
调用 jsf 的一部分value="#{passesTestBean.displayPassSummaryList}"
是 100% 单独注销,PassesTestBean CDI 是请求范围。
所以当我点击注销按钮时,问题出在了某个地方。PassesTestBean 被无缘无故地调用,而不是因为 jsf 必须初始化(因为请求作用域)。它最终返回null。
现在请记住,这只发生在:example.com 的生产和所有页面的唯一主页。
我正在考虑编写一个仅用于注销的页面:只有一个注销按钮。
java-websocket - 网络套接字:和@ServerEndpoint
我目前正在研究 JSF 2.3 和 websockets。
xhtml 页面内的使用<f:websocket>
和 web 套接字端点使用的定义@ServerEndpoint
对我来说很清楚。
但是有没有办法将这两者结合起来<f:websocket>
以连接到现有的带注释的 ServerEndpoint?
还没有找到任何有用的信息。
jsf - ui:param 值在包含的网站中失去其价值(由 ui:include 包含)
我有一个 JSF XHTML 站点,其中包括另一个 JSF XHTML 站点(example.xhtml
),通过ui:include
:
在example.xhtml
网站内部,我使用如下参数:
这乍一看完美无瑕。但是,当我在此站点和其他站点之间来回导航时,该站点有时会中断-到目前为止找不到模式。sortBy
因为in的属性值example.xhtml
实际上是作为字符串传递给我的 bean #{sortByParam}
- 而不是参数的值(MyValue
在这个例子中)。
在某个时间点,它会停止评估传递的参数并将属性直接传递给我的 Java 代码。
我该如何阻止它?这是一个错误吗?
我使用 Primefaces 7.0.3、Mojarra:2.3.2、Java EE 8、Glassfish 5.0