JavaServer Faces(JSF)是一种模型 - 视图 - 展示器框架,通常用于创建基于HTML表单的Web应用程序。使用标准组件和渲染工具包,可以使用Facelets或JSP标记定义有状态HTML视图,并通过支持bean连接到模型数据和应用程序逻辑。
单击提交按钮后,它没有命中我的托管 bean,但也没有显示验证消息。我觉得这很简单,不知道为什么它不起作用......
我使用 f:attribute 标记将值表达式存储在 JSF 组件中,例如: 我使用 f:attribute 标记将值表达式存储在 JSF 组件中,例如: <h:inputText ...> <f:attribute name="myId1" value="#{bean.prop1}" /> <f:attribute name="myId2" value="#{bean.prop2}" /> <f:attribute name="myId3" value="#{bean.prop3}" /> </h:inputText> 有没有办法以编程方式访问所有这些值表达式? (不知道名称 myId1、myId2...) JSF 2.1 规范的第 9.4.2 节规定这些值存储在“组件的 ValueExpression Map 中”。 这是完整规范中唯一出现的术语“ValueExpression Map”。 我如何访问该地图? Jboss/Mojarra 实现的 UI 组件方法 getValueExpression() 中的地图 getStateHelper().get(UIComponentBase.PropertyKeys.bindings) 用于获取单值表达式。 我猜该映射是“ValueExpression Map”的超集? 我能否确定所有实现和所有继承的(标准)组件都使用该映射来存储 ValueExpressions? 谢谢。 在理论上你应该能够通过UIComponent#getAttributes():看到它们全部 var attributes = component.getAttributes(); for (var entry : attributes.entrySet()) { System.out.printf("name=%s, value=%s%n", entry.getKey(), entry.getValue()); } 但是,这并不像您期望的那样工作。它只返回静态属性。这似乎永远不会被修复/实施。另请参阅Mojarra 问题 640。不过,我确实同意 javadoc 需要进一步澄清。 我建议坚持使用预定义前缀和增量数字后缀的属性,就像您在示例中所示的那样。您可以按照以下方式收集它们: var attributes = component.getAttributes(); var values = new ArrayList<Object>(); for (int i = 1; i < Integer.MAX_VALUE; i++) { var name = "myId" + i; var value = attributes.get(name); if (value == null && component.getValueExpression(name) == null) break; values.add(value); } System.out.println(values); BalusC 给出的答案的替代方案可能是使用嵌套构面或 UIParameter 组件。可以使用 getFacets 将分面作为映射进行检索,但您可能需要在每个分面内放置一个额外的 UIOutput 来访问其值表达式。 嵌套的 UIParameters 可以通过迭代子组件并检查 instanceof UIParameter 来访问。 UIParameters 具有 name 和 value 属性,因此可以轻松转换为地图。 我在自定义组件中使用了参数,但我不确定示例中的标准 UIInput 对这些参数有何反应。 BalusC 是对的。 UIComponent#getAttributes().get(name) 从两个地方获取值 - 首先从属性映射中获取值,然后如果没有找到则从“值表达式映射”中获取值。要输入一些值,您必须调用 UIComponent#setValueExpression(name, ValueExpression)。如果 value 是文字,则将其存储到属性映射中,否则存储到“值表达式映射”中。那么一切就都OK了。
我编写了以下 JSF Converter 类: @FacesConverter(“imixsDateConverter”) 公共类 ImixsDateConverter 实现转换器 { 私有静态最终字符串
在不使用 Ajax 的情况下使用 PrimeFaces 提交表单时出错
我正在使用 Jakarta Server Faces 和 PrimeFaces 12 开发一个 JavaWeb 项目。我正在尝试处理一个具有 4 个互相更新的 SelectOneMenu 的表单(第一个更新的选定元素...
Primefaces v10 - 我需要使 <p:textEditor> 不可调整大小并设置最大长度
我使用 Primefaces v10,我需要使 不可调整大小并设置最大长度.. 非常感谢
我曾经使用 JSF - Richfaces,但不知道如何开始它,在学会之前我就退出了。 有什么简单的方法可以开始吗?我需要补充什么。就像将项目分成 4 个左右,
使用 OmniFaces 套接字和 JSF 核心 commandScript 时如何抑制我的 PrimeFaces ajaxStatus?
我的应用程序使用PrimeFaces的全局p:ajaxStatus。每当我需要抑制/避免这种行为时,我都会在特定组件(例如 p:commandButton 等)上使用 global="false"。 布...
JSF 2.1 ViewScopedBean @PreDestroy 方法未调用
我在视图 Scoped Bean 中有一个带有 @PreDestroy 注释的方法,另一个带有 @PostConstruct 注释的方法。 每次我导航到...时都会正确调用 @PostConstruct 方法。
@PreDestroy 从未调用过@ViewScoped [重复]
我有一个 @ViewScoped bean,它有一个带有 @PreDestroy 注释的方法,该方法应确保关闭一些远程连接。但是,当用户离开时,不会调用该方法。 ...
我在 Web 应用程序中创建了几个线程,并且在 JSF 页面中有一个数据表组件。 我想自动更新表格以显示线程的当前状态。有预建吗
JSF 应用程序:从 WAS 8.5 升级到 9.0 后,第二个服务器请求未提交到服务器
警告:自从大学以来我就没有使用过 JSF,而且那是比我愿意承认的时间还要久远的事情,所以假装我是该技术的新手。 背景: 我们正在使用 My ...
p:messages 和 p:message 可以同时使用吗?
我在 primefaces 文档中找不到这样的示例。 我有一个很长的表格。对于我所拥有的表格中的每个组件 但是...
ServletResponse Redirect 在 302 响应中显示应用程序服务器地址
为什么在显示我的应用程序服务器 IP 地址及其端口的重定向后发送“隐藏”302 响应(参见上图) 这被
我对这个关于 JSF EL 中静态方法调用的问题的答案感到困惑。 我在 @Named bean 中有一个带有公共静态方法的类: @命名 公共类静态方法{ 私人...
在 Prime faces 数据表中延迟加载时如何在分页后保留选择列表和复选框?
我在prime faces数据表上实现了延迟加载。它工作正常,但是当页面更改时,选择会被清除。当页面更改时如何保留其他页面的选择...
在同一输入字段使用多个 JSF 验证器时如何避免多个 Primefaces 错误消息
我有一个带有 2 个 JSF 验证器的 Primefaces p:inputText 组件。第一个检查 RegEx,第二个检查输入字段的最小和最大长度。 如果验证与 b 不匹配...
当元素移除太快时,Primefaces 在没有 ViewState 的情况下提交 ajax 请求
这是由 p:schedule 元素创建的无效请求(缺少视图状态),当元素 homeTabs:widgetContent-LEAVE_CALENDAR:lvCalendarForm:schedule 删除得太快时(而时间表的
我编写了以下代码,用于在删除用户时显示确认弹出窗口。另外,我还有进度弹出窗口(也与其他页面相关),我已将其附加到此操作。 但既然他们俩都是
我正在开发一个 JSF 项目,我需要将 List 传递给复合组件。但是,当我尝试在 cc:attribute 的 type 属性中指定此泛型类型时遇到问题......
Primefaces 13 如何避免警告“无法自动确定‘lazy’属性,回退到 false。”
我正在使用 PF 13.0.3。我在 UITable 上收到此警告“无法自动确定惰性属性,回退到 false。要么在组件上定义惰性属性,要么确保...