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)}
//上面有一步是多余的 的。。。。
详情看李刚疯狂的那本书