JSP自定义EL函数

来源:互联网 发布:淘宝商家联系方式 编辑:程序博客网 时间:2024/05/17 08:57

 

 

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)}

 

 

//上面有一步是多余的 的。。。。 

 

详情看李刚疯狂的那本书

 

 

 

 

 


原创粉丝点击