- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我提交和更新=“@form”时,我收到了一次下面的警告。
14:03:23,139 WARNING [javax.enterprise.resource.webcontainer.jsf.application.view] (default task-27) Unable to save dynamic action with clientId 'j_id2' because the UIComponent cannot be found
14:03:23,139 WARNING [javax.enterprise.resource.webcontainer.jsf.application.view] (default task-27) Unable to save dynamic action with clientId 'j_id3' because the UIComponent cannot be found
但是从 faces-config.xml 中删除“org.omnifaces.resourcehandler.CombinedResourceHandler”,不会收到警告。
开发环境是...
这是最小样本。(但我的生产代码更复杂,所以收到了很多(20-1000)条警告。)
index.xhtml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets" xmlns:f="http://xmlns.jcp.org/jsf/core"
xmlns:p="http://primefaces.org/ui">
<h:head></h:head>
<f:metadata><f:viewAction action="#{indexView.init()}"/></f:metadata>
<h:body>
<h:form id="mainForm">
<p:messages id="messages"/>
<p:panelGrid id="panelGrid" columns="3" layout="grid">
<p:outputLabel id="labelInput1" for="@next" value="input"/>
<p:selectOneMenu id="input" value="#{indexView.selectOne}">
<f:selectItems value="#{indexView.itemCandidates}" var="i" itemLabel="#{i}" itemValue="#{i}"/>
</p:selectOneMenu>
<p:commandButton id="btn" value="submit" process="panelGrid" update="@form" actionListener="#{indexView.submit}"/>
</p:panelGrid>
</h:form>
</h:body>
</html>
IndexView.java
package com.sample.primafaces_operation_verification;
import javax.faces.view.ViewScoped;
import // omitted // ;
@Named
@ViewScoped
public class IndexView implements Serializable {
@Getter
private List<String> itemCandidates;
@Getter @Setter
private String selectOne;
public void init() {
this.itemCandidates = List.of("aaa", "bbb", "ccc", "ddd");
}
public void submit() {
Messages.addGlobalInfo("Selected item : {0}", selectOne);
}
}
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<application>
<resource-handler>org.omnifaces.resourcehandler.CombinedResourceHandler</resource-handler>
<action-listener>org.primefaces.application.DialogActionListener</action-listener>
<navigation-handler>org.primefaces.application.DialogNavigationHandler</navigation-handler>
<view-handler>org.primefaces.application.DialogViewHandler</view-handler>
</application>
</faces-config>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
<context-param>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
</context-param>
<context-param>
<param-name>javax.faces.FACELETS_REFRESH_PERIOD</param-name>
<param-value>0</param-value>
</context-param>
<context-param>
<param-name>primefaces.CLIENT_SIDE_VALIDATION</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>primefaces.FONT_AWESOME</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>primefaces.MOVE_SCRIPTS_TO_BOTTOM</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.numberOfLogicalViews</param-name>
<param-value>6</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.numberOfViewsInSession</param-name>
<param-value>6</param-value>
</context-param>
<context-param>
<param-name>org.omnifaces.VIEW_SCOPE_MANAGER_MAX_ACTIVE_VIEW_SCOPES</param-name>
<param-value>6</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.faces</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>index.faces</welcome-file>
</welcome-file-list>
</web-app>
我希望不会收到警告。我该如何修复它?
最佳答案
我发现了几个对此警告的引用,但没有重复的 SO 值得投票以将您的问题作为重复的问题关闭,因此我将尝试通过引用来回答:
PrimeFaces nested form inside p:dialog with appendTo="@(body)
Michele Mariotti 说:
These warnings, as for my experiments, are harmless and could be safely ignored. However I opened a pull request to eventually fix it.
BootsFaces issue 325 Unable to save dynamic action with clientId 'j_id...'
stephanrauh 于 2016 年 3 月 22 日发表评论
这是警告,不是错误。一旦将 ProjectStage 设置为生产环境,警告就会消失。所以我认为这是一个小麻烦,而不是一个严重的错误。无论如何,您是否在不使用 OmniFaces 的情况下收到警告?
stephanrauh 于 2016 年 3 月 22 日发表评论
不太可能。当您使用错误的 API 操作 JSF DOM 树时会出现警告。例如,通过简单地从列表中删除资源文件来删除它。 OmniFaces 在早期版本中就是这么做的。 JSF 检测到缺少某些东西,变得紧张并通过忽略这些令人困惑的警告来使用react。 BootsFaces 可能使用了“禁止的”API,但我相信已经解决了这个问题。无论如何,你能上传一个重现警告的简单项目吗?这使我们的工作变得更加轻松。
总结 警告是由 org.omnifaces.resourcehandler.CombinedResourceHandler
从 View 中删除资源触发的,这是其核心功能的一部分。尝试将 javax.faces.PROJECT_STAGE
设置为 Production
并在编码时忽略警告。
关于jsf - "Unable to save dynamic action with clientId ' j_idX' 的警告因为找不到 UIComponent"发生,使用 CombinedResourceHandler,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58742500/
我在核心 3.1 中使用谷歌身份验证。以前,我的代码运行良好,但在使用系统格式后,项目出现异常。*ArgumentException:必须提供“ClientId”选项。 (参数'ClientId')M
这是 .aspx 文件中的代码 Login Again function Validate() { if (document.getEle
我希望能够让各个用户使用 SignalR 相互发送消息,因此我需要发送到特定的客户端 ID。如何在 session 开始时为特定用户定义客户端 ID - 例如用户的 GUID 主键? 最佳答案 将 I
我正在尝试获取数据表中组件的客户端 ID。问题是 jsf 自动将行索引放在组件 id 之前,即 Update 对于第二行中的链接(索引 = 1)。 我正在使用以下方法来获取 clientId
我在页面上有 7 个 7 周的复选框和 7 天的单独时间选择器。选中复选框后,我想显示该工作日的时间选择器,如果未选中,我想隐藏相应的时间选择器 我已经使用以下代码来获取它,它也能正常工作。 func
我得到了一个我绑定(bind)到转发器的用户控件列表。 用户控件:(示例)“AppProduct” 转发器:
我在 Repeater 的 ItemTemplate 中有一个 TextBox,它也在 ItemTemplate 中。 服务器端我有: protected void txtValorMaterialA
由于指定clienID只是类MqttAndroidClient中的一个特性,在使用类IMqttClient和时不能指定IMqttAsynchClient. 连接具有唯一ID 的客户端的真正目的是什么?
我们在 Google Analytics 中定义了三个自定义维度: ClientId (dimension1): session 范围 SessionId (dimension2): session
我有一个中继器,里面有一些控件,其中一个是文本框。我正在尝试使用 jquery 获取文本框,我的代码如下所示: $("#").click(function (event) {}); 但我总是得到 nu
我有一个应用程序将由两个不同的实体使用,每个实体都有自己的 Azure Active Directory。 最初,我使用的代码是: var msalConfig = { auth: {
有谁知道在 Azure 中哪里可以找到我的 Azure Active Directory Graph 客户端 ID?我已经在 Azure 内部到处搜索过,但仍然没有运气。或者是否有人知道 powers
我在 .ascx 用户控件中遇到 扩展问题。 我有一个 .js 文件,其中包含 JavaScript 函数: function doSomething(objectId) { ... } 我
我正在尝试 Spring OAuth2 库的非常基本的实现;但是,当我向服务器发送请求时,我收到以下错误: { "error": "invalid_client", "error_descriptio
我有几个应该处理单个 bean 产生的不同类型错误的元素。现在,我从浏览器获取的某个元素的 clientID 始终相同,因为内部没有生成的 id(总共 3 个 ID)。 无论我将哪个 clientID
我有一个组合组件,它捆绑了一些输入字段。该组件将在页面上多次使用,并包含一个按钮,用于复制其中另一个组件的值。为此,我需要通过其 clientId 访问其中一个 sibling 作为 的目标 我的问
我试图在文档中找到它,但我没有在任何地方看到它。 在 CometD 中,clientId 的生命周期是多久? 因此,客户端登录并成功握手。现在他们有一个与服务器上的 session 关联的 clien
我可以获得所有 jms 主题订阅者的 ClientID 吗?我使用 Jboss AS 6 (HornetQ)。 当然,我可以向他们所有人发送查询并阅读回复,但我正在寻找更优雅的解决方案。 最佳答案 通
我想在动态生成的控件中设置所需的 ClientID。如果您有任何想法将所需的 ClientID 设置为控件而不是告诉我,则 ClientID 是只读的 最佳答案 这只能在 .Net 4 及更高版本中完
我在网格控件中有一个文本框控件。我想使用带有“”之类的 javascript 获取 textBox 的 clientID。但是我收到一条错误消息,指出当前上下文中不存在 txtBox。文本框以编程方式
我是一名优秀的程序员,十分优秀!