1、对EL表达式的理解
对于EL表达式,网上对其有很多解释,我则将其简单的理解为:模式匹配的替换,说白了就是将程序员写的一个字符串如#{bean.prop1}进行求解,然后jsf在render的时候将#{bean.prop1}替换为求解的结果。
2、要了解JSF EL的运算符
关于此点,网上很多,大家只要明白EL可以进行算术运算,逻辑运算,关系运算,简单的字符串处理(长度、连接等)即可。
特别注意empty的使用,在实际项目中empty通常会被大量使用。
此外,我们还要熟练使用ui:repeat和c:foreach,ui:repeat是jsf特有的功能类似c:foreach,由于primeface的accordiontab组件不支持ui:repeat,primeface的panel等一些组件在ui:repeat下渲染出来的id莫名奇妙。因此,在jsf中还会大量使用c:foreach.
3、了解JSF EL的内嵌变量
EL中有很多内置的变量我们可以直接使用,如request、session等,具体如下所示。
·application: ServletContext or PortletContext, The ServletContext or PortletContext, depending on whether an application is running in a servlet or portlet context, respectively.
·applicationScope: Map A map for storing application-scoped data. This is the same map into which application-scoped managed beans are stored.
·component: (JSF 2.0 only) UIComponent The UIComponent instance being currently processed. cc (JSF 2.0 only) UIComponent The top-level composite component currently being processed.
·cookie: Map A map view of values in the HTTP Set-Cookie header.
·facesContext: FacesContext The actual FacesContext instance.
·flash: (2.0 only) Map A map whose values are guaranteed to be present only on the “next” request. (A detailed explanation of flash is found in the text.)
·header Map: A map view of all the HTTP headers for this request.
·headerValues: Map A map view of all the HTTP headers for this request. Each value in the map is an array of strings containing all the values for that key.
·initParam: Map A map view of the init parameters for this application.
·param: Map A map view of all the query parameters for this request.
·paramValues: Map A map view of all the HTTP headers for this request. Each value in the map is an array of strings containing all the values for that key.
·request: ServletRequest or PortletRequest, The ServletRequest or PortletRequest, depending on whether the code is executing in a servlet or portlet environment, respectively.
·requestScope: Map A map for storing request-scoped data. This is the same scope into which request-scoped managed beans are stored.
·resource: Resource Allow a resource reference to be rendered to the page.
·session: HttpSession or PortletSession, The HttpSession or PortletSession, depending on
whether code is executing in a servlet or portlet environment, respectively.
·sessionScope: Map A map view of the session-scoped attributes.
·view: UIViewRoot The current UIViewRoot for this view.
·viewScope: (JSF 2.0 only) Map A map view of the attributes scoped to the current view.
4、JSF2 EL注意多余的空格
当EL表达式的目标值不是String类型的时候,如为boolean,则注意表达式中不要有多余的空格。如:<p:panel rendered=” #{bean.prop1}” />,el表达式在求值时会试图” true”带有空格前缀的true进行逻辑转换,发生转换出错。
5、JSF2 EL表达式可以通过编程的方式求解,利用此,我们可以在任何一个Managed Bean中调用其它bean的方法。
6、JSF2 EL表达式的遗憾
EL表达式或许可以使用#{} #{}等几个表达式进行连接拼接字符串,但是在#{}一个表达式中不能进行连接字符串是个遗憾。如:在c:foreach中设置了var=status,现在要往Listener中传入一个字符串,该字符串内容为: ‘str1’+status.index+’str2’,我折腾了个半小时都无果。
分享到:
相关推荐
EL 表达式的使用详解 EL 表达式是一种在 Java 服务器页面(JSP)中使用的表达式语言。它提供了一种简单的方式来访问和操作 Java 对象的属性。EL 表达式广泛应用于 JSP、Servlet、JSF 等 Web 开发技术中。本文将详细...
EL 表达式是 Java 服务器页面(JSP)和 Java 服务器面板(JSF)中使用的一种表达式语言,用于在 Web 应用程序中实现动态内容。EL 表达式可以被解析成数值表达式和方法表达式,其中取值表达式用于引用一个值,而方法...
EL表达式通常在JSP或JSF(JavaServer Faces)页面中使用,以${}包裹。例如,如果你有一个名为"user"的JavaBean,其中有一个属性叫做"name",在JSP页面中你可以这样显示它的值: ```jsp Hello, ${user.name}! ``` ...
EL表达式(Expression Language),是一种用于Java Web开发中方便...EL表达式已经成为Java Web开发中处理数据存取的重要工具,特别是在使用JSP和JSF技术时。熟悉EL表达式的使用可以显著提高Web应用开发的效率和可读性。
EL表达式还可以与其他JSP技术,如JSF(JavaServer Faces)或Spring MVC结合使用,提供更强大的功能。例如,JSF中的EL可以与组件系统交互,Spring MVC中的EL则可以在视图层与模型对象之间建立绑定。 总的来说,EL...
本教程将深入介绍EL表达式的各个方面,帮助你成为一名熟练的JSF开发者。 一、EL基础 1. EL的语法:EL表达式通常以`#{}`包围,例如`#{bean.property}`,其中`bean`是对象实例,`property`是该对象的属性。EL会自动...
在JXL中,结合EL表达式,我们可以动态地生成Excel内容,这使得在模板基础上生成复杂的数据报告变得非常便捷。 **步骤1:准备Excel模板** 首先,你需要创建一个Excel模板文件,这个模板包含你想要在生成的Excel中...
JSF_EL表达式使用独特的语法`#{}`,与JSP EL表达式的`${}`有所不同。JSF_EL不仅支持值绑定表达式,还支持方法绑定表达式,后者用于调用Bean的方法。此外,JSF_EL还支持混合类型的计算和运算符,增强了其灵活性和表达...
最后,我们需要在JSP页面中引入我们的自定义函数库,并在EL表达式中使用它。在`elTest.jsp`页面中,我们添加以下代码: ```jsp ... ${m:getFruit("10") } ``` 这里,`prefix="m"`是我们为自定义函数库选择的前缀,...
EL表达式通常在`${}`中写,例如`${user.name}`会返回`user`对象的`name`属性。 EL支持基本运算符(如+,-,*,/,%),数组和集合访问,以及方法调用。它还与Java Servlet上下文(如request,session,application...
下面我们将深入探讨EL表达式的基本用法。 1. EL表达式类型 - Eval-expression: 这种表达式以`${expr}`或`#{expr}`的形式出现,两者功能相同,但技术上有所不同。`${expr}`在JSP页面编译时计算,称为直接计算;而`#...
EL表达式是JSP 2.0引入的一个特性,它是一种轻量级的脚本语言,用于在JavaServer Pages(JSP)和JavaServer Faces(JSF)中访问和操作Java对象。EL通过一种简洁的语法结构来引用和操作存储在请求、会话或应用范围内...
### EL表达式语法详解 #### 一、EL表达式概述 ...通过了解EL表达式的基本概念、类型以及如何使用这些表达式,开发人员可以更加高效地构建动态网页应用。此外,正确理解和使用EL表达式有助于提高代码的可读性和维护性。
JSF组件的属性可以直接绑定到EL表达式,如`value="#{bean.property}"`,这样组件的值就能自动与后台bean的属性同步。 总的来说,EL表达式是Java EE Web开发中的强大工具,它简化了数据访问和处理,使得开发者可以更...
1. **EL上下文**:EL表达式在EL上下文中执行,它可以访问JSP作用域内的所有对象(page,request,session,application)。 2. **作用域优先级**:EL会按照page -> request -> session -> application的顺序查找变量...
【思员EL表达式PPT】是一份详细讲解JAVA基础及EL表达式的教育资源,特别提到了JSTL的使用。EL(Expression Language)是JSTL 1.0为简化数据访问而创建的一种语言,最初仅限于在JSTL标签内使用。随着JSP 2.0的发布,...
当用户提交表单后,Struts 2会使用OGNL解析这些表达式,将数据保存到对应的模型对象中,如`getUser().setUsername()`。而在显示用户信息时,同样可以通过OGNL表达式获取数据,如`getUser.getUsername()`。 **值堆栈...
- EL表达式用`${}`包裹,可以在HTML和JSP标签中使用,简化了JSP页面中的Java代码。 - EL可以操作常量、变量以及隐含对象。常见的隐含对象有`${param}`和`${paramValues}`。`${param}`返回请求参数的单一字符串值,`$...
EL是JavaServer Faces (JSF) 和其他Java技术中用于在视图层解析表达式并获取数据的工具,它允许在运行时评估Java表达式,例如获取Bean属性、方法调用等。在Spring AOP中,EL可以帮助我们访问被拦截方法的局部变量,...