转载:http://www.seamframework.org/Documentation/CreatingCustomELFunctions
In the WebContent/META-INF/
(JBDS) or view/META-INF/
(seam-gen) create a file called elfunctions.taglib.xml. If the
META-INF/ dir does not exist, create it also. The content of
elfunctions.taglib.xml should be:
<?xml version="1.0"?>
<!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "facelet-taglib_1_0.dtd">
<facelet-taglib>
<library-class>org.el.func.FnLibrary</library-class>
</facelet-taglib>
Create another src package src/facelets with the packagename: org.el.func and add
package org.el.func;
import com.sun.facelets.tag.AbstractTagLibrary;
import java.lang.reflect.Method;
import java.lang.reflect.Modifier;
public class FnLibrary extends AbstractTagLibrary {
public final static String Namespace = "http://org.el.func/SeamFunc";
public static final FnLibrary INSTANCE = new FnLibrary();
public FnLibrary() {
super(Namespace);
try {
Method[] methods = SeamFunc.class.getMethods();
for (int i = 0; i < methods.length; i++) {
if (Modifier.isStatic(methods[i].getModifiers())) {
this.addFunction(methods[i].getName(), methods[i]);
}
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}
}
The above will dynamically add any of the static methods in a class
called SeamFunc.java to be available in the EL. Now create
org.el.func.SeamFunc.java:
package org.el.func;
import org.jboss.seam.core.Expressions;
public class SeamFunc {
public static String concat(String... strings) {
StringBuilder buff = new StringBuilder();
if (strings != null) {
for (String str : strings) {
buff.append(str);
}
}
return buff.toString();
}
public static Object evalEl(String expression) {
String framedExpr = "#{" + expression + "}";
Object value = Expressions.instance().createValueExpression(framedExpr).getValue();
return value;
}
}
Now the last piece is to define the location of the elfunctions.taglib.xml in web.xml:
<context-param>
<param-name>facelets.LIBRARIES</param-name>
<param-value>
/META-INF/elfunctions.taglib.xml
</param-value>
</context-param>
Create a test.xhtml page and add:
xmlns:e="http://org.el.func/SeamFunc"
and to the body:
#{e:concat('Hello ', 'World!')} / #{e:evalEl('conversation')}
These are just two examples of functions, you can
create as many as you'd like. The evalEL seems useless, until you
realize you can do something like:
#{e:evalEL(e:concat('person', 'Home'))}
which correctly resolves the value of the Seam component named personHome.
备注
facelets本身提供了jstl函数,所以jstl中的函数可以使用
分享到:
相关推荐
标题中的“在自定义Spring AOP中使用EL获取拦截方法的变量值”指的是在Spring的面向切面编程(AOP)中,通过Expression Language(EL,表达式语言)来访问被拦截方法的局部变量值。这通常涉及到Spring的代理机制、...
倍福EL6692在TwinCAT中配置和使用 本文档主要描述如何使用EL6692(EtherCAT bridge terminal)在TwinCAT中进行跨网络数据交换。EL6692可以轻易地实现多个网络系统之间的实时数据交换(约1ms)。下面将详细介绍EL...
这个软件包的主要功能是提供popt库的静态编译版本,使得其他程序在构建时可以直接将popt的功能嵌入到可执行文件中,而不需要在运行时依赖动态链接库。 描述中提到的“popt-1.13-7.el6.x86_64”是popt库的标准动态库...
在EL中,除了访问属性外,还可以直接调用JavaBean中的公共方法。这极大地减少了JSP页面上的Java脚本let代码,使页面更易于维护。以下是一个简单的例子: ```jsp ${myBean.myMethod(param1, param2)} ``` 在这个...
EL 表达式是一种在 Java 服务器页面(JSP)中使用的表达式语言。它提供了一种简单的方式来访问和操作 Java 对象的属性。EL 表达式广泛应用于 JSP、Servlet、JSF 等 Web 开发技术中。本文将详细介绍 EL 表达式的使用...
在EL 2.2中,引入了一些重要的增强,比如支持方法调用,这使得EL不仅仅能读取对象的属性,还可以直接调用对象的方法,甚至传递参数。此外,还增加了对Java 5及以后版本的泛型支持,使得EL可以更好地集成到现代Java...
### EL表达式的使用方法 #### 一、简介 在Java Web开发中,EL(Expression Language)表达式是一种非常实用的功能,它允许开发者在JSP页面中动态...在实际项目开发中,熟练掌握EL表达式的使用方法是非常有必要的。
如果使用的是只支持Servlet2.3/JSP1.2的容器,如Tomcat 4.1.29,那么无法直接在JSP网页中使用EL,需要安装支持Servlet2.4/JSP2.0的容器。 EL表达式以`${`开始,以`}`结束。它提供两种运算符来存取数据:点(`.`)...
易语言程序永久去除_EL_HideOwner方法 首先找到易语言安装目录,然后打开static_lib文件夹,可以看到里面有个krnln_static.lib文件。 我们只需要用其他文件替换下它即可解决易语言免杀功能了。 _EL_HideOwner ...
这行代码告诉容器不要忽略EL表达式,使得EL可以在页面中正常工作。 #### 三、EL内置对象 除了能够访问各种对象之外,EL还提供了一系列内置对象,这些对象可以帮助我们执行常见的字符串操作、集合处理等任务,大大...
在给定的文件中,展示了如何利用Element UI库来封装`el-table`和`el-form`组件,这两个组件在管理系统的界面中非常常见,特别是用于数据展示和表单提交。 首先,我们关注`el-form`组件的封装。`el-form`用于创建...
总结来说,Element UI 的 el-button 组件中添加自定义颜色和图标的实现方法可以通过添加自定义的全局指令,并在项目公共的 js 中编写自定义的指令来实现。这是一种非常灵活和方便的方法,可以满足不同的需求和场景。
EL和JSTL的结合使用极大地简化了JSP页面中的逻辑处理,使得页面更加整洁,易于维护。通过掌握上述EL方法和JSTL标签的运用,开发者可以更高效地处理数据、进行条件判断和循环操作,提升网页制作的效率和质量。在实际...
EL的另一个重要特性是它的变量解析机制,它能查找变量在不同的作用域中,这使得开发者可以在JSP页面中轻松地访问和操作模型数据,而无需显式地在JSP页面中声明或初始化这些变量。 总的来说,《EL手册》是Java EE...
popt-static-1.13-7.el6.x86_64.rpm
因此,如果我们直接在 JavaScript 文件中使用 EL 表达式,是不会生效的。这是因为 EL 表达式需要在服务端执行,而 JavaScript 文件是在客户端执行的。 那么,如何在 JavaScript 中引用 EL 表达式呢?一种解决方案是...
在本文中,我们将深入探讨如何使用EL6001设备实现串口通信,特别是将其作为发送端,将PLC(可编程逻辑控制器)相关数据发送到接收端。串口通信是一种广泛应用于工业自动化、物联网设备以及嵌入式系统中的通信方式,...
在JSP页面开发过程中,EL(Expression Language)表达式是一种用于简化数据访问的语法,通过它可以方便地访问Java EE环境中JSP页面的隐含对象和JavaBeans组件。当EL表达式被错误地当作字符串处理而不是被解析时,会...
EL 表达式还可以从域中取出数据,相当于使用 request.getParameter()、request.getParameterValues()、param、paramValues 等方法来获取请求参数和请求头信息。 在 EL 表达式中,还有 11 个内置对象,可以用于简化...
EL隐含对象是EL中预定义的一些对象,它们可以直接在EL表达式中使用,无需在Java代码中声明。这些对象包括request、response、session、application等,它们对应于JSP中的内置对象,提供了访问Web应用特定范围对象的...