EL 函数:必须要放在 EL 表达式里
定义 EL 函数的步骤 :
1: public 构造方法
2. 定义特定的 static 函数
3. 在标记库描述文件( tld )中描述这个函数
4. 在 web.xml 部署次 tld 文件
注:如果打成 jar 包放在 build path 把 tld 文件放在包里就不要配置了
5. 在 JSP 文件中用 taglib 指令定义函数的命名空间
Java:
public class MoneyFunc { public MoneyFunc(){} /** * 返回带,号的金额 * @param amount * @return */ public static String getFormatStr(String amount) { String ret = ""; try { ret = NumberFormat.getCurrencyInstance().format(Double.valueOf(amount)).replaceAll("¥", ""); } catch (Exception e) { } return ret; }
}
money.tld:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns=" http://java.sun.com/xml/ns/j2ee " xmlns:xsi=" http://www.w3.org/2001/XMLSchema-instance " xsi:schemaLocation=" http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_0.xsd" version="2.0"> <tlib-version>1.1</tlib-version> <short-name>money</short-name> <uri>/money</uri> <function> <description>返回带,号的金额</description> <name>getFormatStr</name> <function-class>org.xxxxx.MoneyFunc</function-class> <function-signature> java.lang.String getFormatStr(java.lang.String) </function-signature> </function> </taglib>
web.xml:
<jsp-config>
<taglib> <taglib-uri>/WEB-INF/tld/money.tld</taglib-uri> <taglib-location>/WEB-INF/tld/money.tld</taglib-location> </taglib>
</jsp-config>
jsp:
<%@ taglib uri="/WEB-INF/tld/money.tld" prefix="money" %>
${money:getFormatStr(ent.bfamount)}
//上面有一步是多余的 的。。。。
详情看李刚疯狂的那本书