facelets

您是否曾经在JSF中看到过像这样的重复EL表达式?

<h:inputText value="#{oneBean.name}" rendered="#{anotherBean.showPerson}"/>
<h:inputText value="#{oneBean.birthday}" rendered="#{anotherBean.showPerson}"/>
<h:selectOneMenu value="#{oneBean.children}" style="#{anotherBean.showPerson ? 'display:block' : 'display:none'}"/>

usw。 另一个例子:

<ui:include src="/include/somesnippet.xhtml"><ui:param name="age" value="#{someBean.isMan(person) ? 63 : 60}"/><ui:param name="money" value="#{someBean.isMan(person) and someBean.getCountry(person) eq 'de' ? 1000 : 900}"/><ui:param name="big" value="#{someBean.getCountry(person) eq 'zh' or someBean.getCountry(person) eq 'ru' ? true : false}"/>
</ui:include>

#{anotherBean.showPerson},#{someBean.isMan(person)},#{someBean.getCountry(person)}重复多次。 如何优化它们? 好了,您可以像以下代码片段一样使用JSTL的c:set:

<c:set var="showPerson" value="#{anotherBean.showPerson}"/><h:inputText value="#{oneBean.name}" rendered="#{showPerson}"/>
<h:inputText value="#{oneBean.birthday}" rendered="#{showPerson}"/>
<h:selectOneMenu value="#{oneBean.children}" style="#{showPerson ? 'display:block' : 'display:none'}"/><c:set var="man" value="#{someBean.isMan(person)}"/>
<c:set var="country" value="#{someBean.getCountry(person)}"/><ui:include src="/include/somesnippet.xhtml"><ui:param name="age" value="#{man ? 63 : 60}"/><ui:param name="money" value="#{man and country eq 'de' ? 1000 : 900}"/><ui:param name="big" value="#{country eq 'zh' or country eq 'ru' ? true : false}"/>
</ui:include>

如果您担心JSTL的陷阱(因为您听说过JSTL并不总是对JSF友好!),则有另一种简单的方法– ui:param。 TagHandler ui:param使用JSF的VariableMapper将EL表达式保存在地图中。 该映射将页面上的EL变量及其关联的EL表达式映射。 在这里,您去:

<ui:param name="showPerson" value="#{anotherBean.showPerson}"/><h:inputText value="#{oneBean.name}" rendered="#{showPerson}"/>
<h:inputText value="#{oneBean.birthday}" rendered="#{showPerson}"/>
<h:selectOneMenu value="#{oneBean.children}" style="#{showPerson ? 'display:block' : 'display:none'}"/><ui:param name="man" value="#{someBean.isMan(person)}"/>
<ui:param name="country" value="#{someBean.getCountry(person)}"/><ui:include src="/include/somesnippet.xhtml"><ui:param name="age" value="#{man ? 63 : 60}"/><ui:param name="money" value="#{man and country eq 'de' ? 1000 : 900}"/><ui:param name="big" value="#{country eq 'zh' or country eq 'ru' ? true : false}"/>
</ui:include>

该代码更具可读性,尤其是当您具有非常复杂且很长的表达式时。 注意:我们在这里谈论的是可读代码,而不是性能优化,因为JSF TagHandlers不评估EL表达式。

翻译自: https://www.javacodegeeks.com/2014/11/dont-repeat-expressions-in-facelets.html

facelets

facelets_不要在facelets中重复表情相关推荐

  1. 不要在facelets中重复表情

    您是否曾经在JSF中看到过像这样的重复EL表达式? <h:inputText value="#{oneBean.name}" rendered="#{another ...

  2. [JS]请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组。

    请给Array本地对象增加一个原型方法,它用于删除数组条目中重复的条目(可能有多个),返回值是一个包含被删除的重复条目的新数组. 刚开始复习js题还不太习惯 CSDN上看了一个帖子,说是牛客上的标答, ...

  3. java中json重复数据结构_JS实现去除数组中重复json的方法示例

    本文实例讲述了JS实现去除数组中重复json的方法.分享给大家供大家参考,具体如下: var array = [{"name":"123"},{"na ...

  4. 剑指offer: 面试题03. 数组中重复的数字

    题目:找出数组中重复的数字. 在一个长度为 n 的数组 nums 里的所有数字都在 0-n-1 的范围内.数组中某些数字是重复的,但不知道有几个数字重复了,也不知道每个数字重复了几次.请找出数组中任意 ...

  5. 【Java面试题】54 去掉一个Vector集合中重复的元素

    在Java中去掉一个 Vector 集合中重复的元素 1)通过Vector.contains()方法判断是否包含该元素,如果没有包含就添加到新的集合当中,适用于数据较小的情况下. import jav ...

  6. php 去掉数组相同元素,php怎么去掉数组中重复的元素

    php去掉数组中重复的元素的方法:可以通过内置函数array_unique()来实现.array_unique()函数可以移除数组中重复的值并返回过滤后的数组.如果数组中存在多个相同元素,则只保留第一 ...

  7. python去重复行_python去除文件中重复的行实例

    python去除文件中重复的行,我们可以设置一个一个空list,res_list,用来加入没有出现过的字符行! 如果出现在res_list,我们就认为该行句子已经重复了,可以再加入到记录重复句子的li ...

  8. 【Java】牛客网 删除链表中重复的结点

    题目描述 : 在一个排序的链表中,存在重复的结点,请删除该链表中重复的结点,重复的结点不保留,返回链表头指针. 例如,链表 1->2->3->3->4->4->5 ...

  9. 【MySQL】面试官:如何查询和删除MySQL中重复的记录?

    写在前面 最近,有小伙伴出去面试,面试官问了这样的一个问题:如何查询和删除MySQL中重复的记录?相信对于这样一个问题,有不少小伙伴会一脸茫然.那么,我们如何来完美的回答这个问题呢?今天,我们就一起来 ...

最新文章

  1. 云南“爆款”景区相继停业整顿 旅游大省为环保让路
  2. C#者重建C++之路 - 运行机制的差异
  3. 让我们努力从“不可救药的乐观主义者”--华尔街知名投资人约翰。多尔那里学点东西(永远放弃尝试改变这个世界)...
  4. 服务器电源can协议,硬件接口协议之“CAN总线EMC设计”
  5. J2me流媒体技术实现讨论[2]
  6. word List25
  7. Tensorflow 2 循环神经网络 GRU 豆瓣IMDB影评数据集训练模型
  8. 各大浏览器的最小字体与默认字体
  9. 极狐+华为,小鹏+大疆,极氪+mobileye,自动驾驶成为“风向标”
  10. 分享8个免费的超清背景图片下载网站
  11. 真·杂项:资本论阅读笔记(随缘更新)
  12. 【 MATLAB 】gca 介绍(当前轴或图表)
  13. MacOS 搭建一个vue项目(完整步骤)
  14. Android端 实现收钱吧扫描客户收款码的正则表达式
  15. 49.现有移动端开源框架及其特点—MACE( Mobile AI Compute Engine)
  16. Mac查看OpenGL版本
  17. 苹果电脑IOS ssh远程关机
  18. MT7688 wifi 调试(二) 如何修改ra0 mac地址
  19. 陈平 教授的演讲(经济学家)
  20. python qq群_python qq群机器人怎么弄

热门文章

  1. P3402-[模板]可持久化并查集【主席树】
  2. 【贪心】Stall Reservations(luogu 2859/poj 3190)
  3. [XSY3112] 接水果(树上包含路径,整体二分,扫描线)
  4. 9、oracle数据库下的视图和同义词
  5. 10、mysql数据表中数据的查询(2)
  6. 汇编语言(二十三)之求一个数的补数
  7. 图解HashMap和HashSet的内部工作机制
  8. java中部的分页实现(二)
  9. mybatis简单案例源码详细【注释全面】——前期准备
  10. SpringCloudConfig整合Nacos