gpt4 book ai didi

jsf - 如何在 Java 中获取 UIComponent 值?

转载 作者:行者123 更新时间:2023-12-03 14:30:15 26 4
gpt4 key购买 nike

我的 JSF 中有一个方法controllerajax 调用标签嵌套在可视组件中(与哪一个无关)。该方法采用 AjaxBehaviorEvent 类型的单个参数,从中我可以获取调用 HTML 可视化组件的 Java 表示,作为 UIComponent 并将其向下转换为其特定的对应类型(例如 h:inputText 对应于 HtmlInputText )。

我知道,在大多数情况下,通过引用 View 中表单字段映射到的 Controller 或实体 [g|s]etters,可以轻松检索 HTML 可视组件的值。但是,在我的特定情况下,我想通过其 Java 对象呈现来获取可视组件(在我的情况下为表单字段)的值。在学习时faces API,我找到了读取对象各种属性的方法,比如IDcontext但不是组件当前在 View 中保存的值。

任何人都可以解释一下我是没有找到正确的阅读方式还是有意为之?如果是后者,你能解释一下为什么它是这样设计的吗?是否禁用“后门”访问表单字段而不是通过 View 映射?

最佳答案

有多种方法可以从组件中提取值。按照你已经拥有的去做 UIInputt#getValue()UIInput#getSubmittedValue()将提供值(value)。
UIInput#getSubmittedValue()仅适用于 APPLY_REQUEST_VALUES 之间的用途和 VALIDATE JSF 请求的各个阶段。之后的所有其他阶段,使用 UIInputt#getValue() .您将使用 UIInput而不是原始 UIComponent您从事件中提取( UIInput extends UIComponent 并且它是所有接受用户编辑值的输入组件的父类)。您最终将拥有的内容如下:

     UIInput theInput = (UIInput)event.getSource();
Object theValue = theInput.getValue();

还有其他方法(不那么干净)也可以在请求生命周期内获取值

关于jsf - 如何在 Java 中获取 UIComponent 值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27611957/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com