EL 中的#{component} 到底是什么?

2023-12-28

根据https://code.google.com/p/primefaces/issues/detail?id=4720 https://code.google.com/p/primefaces/issues/detail?id=4720, The ComponentUtils.resolveWidgetVar(String expression, UIComponent component)该函数自 2013 年起在 Primefaces 中可用。它可以在 EL 中使用"#{p:widgetVarFromContext(searchExpression, component)}"功能。

当多个组件在不同的环境中具有相同的 id 时,这非常有用NamingContainer,但仍然存在于同一视图中。在这种情况下, 这#{p:widgetVar(searchExpression)}函数仅返回最后找到的一个。

但我不明白如何引用UIComponent必须作为 EL 的第二个参数传递。上面提到的错误报告建议我们可以参考它#{component}。谁能给我举个例子吗?


The #{component}是一个隐式 EL 变量,引用current UIComponent http://docs.oracle.com/javaee/7/api/javax/faces/component/UIComponent.html#getCurrentComponent(javax.faces.context.FacesContext)在 EL 范围内(另见隐式 EL 对象 http://balusc.blogspot.nl/2011/09/communication-in-jsf-20.html#ImplicitELObjects)。您通常只能在组件的 HTML 属性或模板文本子项中引用它。

例如。的情况下<h:inputText>它将引用一个实例UIInput https://docs.oracle.com/javaee/7/api/javax/faces/component/UIInput.html其中有一个类isValid() method.

<h:inputText id="foo" required="true"
    style="background: #{component.valid ? '' : 'pink'}"
    onclick="alert('Client ID of this component is #{component.clientId}');" />

您还可以使用binding属性让 JSF 在视图构建期间放置对 Facelet 作用域中的组件实例的引用。这样,在视图渲染期间,组件引用将在 Facelet 中的任何位置可用。

<script>alert('Client ID of foo component is #{foo.clientId}');</script>
<h:inputText binding="#{foo}" />

也可以看看:

  • component.clientId 和 p:component() 生成的客户端 id 之间的区别 https://stackoverflow.com/questions/20539713/difference-between-client-id-generated-by-component-clientid-and-pcomponent/
  • 没有 bean 属性的 JSF 组件绑定 https://stackoverflow.com/questions/8168302/jsf-component-binding-without-bean-property
  • JSF 中的“绑定”属性如何工作?何时以及如何使用它? https://stackoverflow.com/questions/14911158/how-does-the-binding-attribute-work-in-jsf-when-and-how-should-it-be-used
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

EL 中的#{component} 到底是什么? 的相关文章

随机推荐

  • 从静态方法调用ES5类方法

    我想从没有实例的静态函数中调用内部函数 如下所示 Foo Bar function options Autodesk Viewing Extension call this options this innerFunc function i
  • 使用 Fabric.js 将背景图像拉伸到画布大小

    我在用Fabric js and Canvas设计一些卡片 我需要将背景图像拉伸到画布大小 但它不起作用 下面是我的代码 SCRIPT
  • 使用 LINQ 生成 XML 时如何从元素中删除 xmlns?

    我正在尝试使用 LINQ 生成我的站点地图 站点地图中的每个 url 都是使用以下 C 代码生成的 XElement locElement new XElement loc location XElement lastmodElement
  • DropdownList 在加载时重置为索引 0

    我该如何重置我的asp DropDownList元素 其中有一个runat server 在 Firefox 中每次 重新加载 页面 按 F5 时索引 0 如果您建议使用 JavaScript 请注意 我没有使用表格 我不知道如何访问具有r
  • R DT 表格顶部的水平滚动条

    我有一个又宽又长的闪亮DT 默认情况下 我想在表格顶部显示水平滚动条 有没有办法做到这一点 我当前的 DT 定义如下所示 DT datatable dt rownames FALSE filter fbox style bootstrap
  • Android自定义对话框高度

    我正在学习 Android 对话框 但我对决定其高度的因素感到困惑 如果我使用此 XML 作为我的对话框布局
  • 如何在Java中高性能地显示多个SVG

    我想要的是 我的目标是能够在 Java 的单个绘图区域上显示大量 SVG 图像 每个图像都有自己的平移 旋转 缩放值 我正在寻找允许此操作的最简单的解决方案 甚至可以选择使用 OpenGL 来加快速度 我尝试过的 我最初的幼稚方法是使用 S
  • 带或不带加窗的 KISS FFT 输出

    我目前正在尝试使用 Kiss fft 将 fft 实现到 avr32 微控制器中 以进行信号处理 我的输出有一个奇怪的问题 基本上 我将 ADC 样本 使用函数生成器进行测试 传递到 fft 实际输入 256 n 大小 中 并且检索到的输出
  • 如何在C中读取和覆盖文本文件?

    我有一个文本文件 text txt 其内容为 为了简单起见 this is line one this is line two this is line three 再次为了简单起见 我只是尝试将每行中的第一个字符设置为 x 所以我想要的结
  • 当“myType”在运行时动态生成时,鉴别器“myType”不明确

    我有一个应用程序 它在运行时动态创建新类型 创建该类型的对象并将它们插入到类型的 MongoDB 数据库集合中object 使用 shell 我可以看到对象已正确插入并且 tvalue 是动态创建的类的正确名称 我正在尝试使用以下方法从我的
  • KeyCloak 用户联合和动态角色

    我正在使用本指南http www keycloak org docs 3 2 server development topics user storage html http www keycloak org docs 3 2 server
  • 如何在 Python 中生成随机字符串(长度为 X,仅 a-z)? [复制]

    这个问题在这里已经有答案了 可能的重复 python 生成带有大写字母和数字的随机字符串 https stackoverflow com questions 2257441 python random string generation w
  • 使用 Firefox(最新 32 位)浏览器的量角器未加载

    因此 由于某种原因 当我运行 Protractor 时 Firefox 最新 32 只会打开一个空浏览器 并且不会导航到 baseURL 我编写的测试在 Chrome 上工作得很好 但在 Firefox 上却不行 这可能与conf文件的设置
  • 如何从 Android 的 Google 获取当前时间? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有 Google API 可以从时区获取当前时间 如果有 我该如何使用它 我想从特定时区获取当前在
  • Android 中同时播放多个视频文件

    我曾在 iPad 上对 iOS 提出过同样的问题 但现在我想看看在 Android 中是否可行 目前我收到的回复是 iOS 内没有 如果在 Android 中可行 请解释一下使用了什么 API 这是我引用的原始问题 iOS 上的原始帖子可在
  • 如何枚举 SQL 中返回的行?

    我想知道是否可以枚举返回的行 不根据任何列内容 而只是产生一个顺序整数索引 例如 select count as usercount from users group by age 会返回类似的内容 1 12 2 78 3 4 4 42 那
  • 无法解析符号“createFromResource”

    我完全不明白这意味着什么 我已经进行了一些搜索 但到目前为止还没有找到任何帮助 我正在使用 android studio 并有一个对话框片段 我正在其中设置一个微调器 Spinner systemFontSpinner Spinner vi
  • Seaborn 热图更改 yticks 的日期频率

    我的问题与该主题遇到的问题类似 更改多索引数据帧的热图 xticks https stackoverflow com questions 66897981 change heatmaps yticks for multi index dat
  • 本地主机上的谷歌距离矩阵

    我正在尝试使用谷歌距离矩阵来找出从一个源到一个目的地的距离和时间 我正在调用该函数 postCode change function var address sydney var source melbourne var url https
  • EL 中的#{component} 到底是什么?

    根据https code google com p primefaces issues detail id 4720 https code google com p primefaces issues detail id 4720 The