JSP自定义方法库

如果JSTL的方法库没有满足需要,可以使用自定义方法进行扩展

public class Function{
      public static int length(Object obj){  //返回对象的长度
             if(obj == null){
                    return 0;
             }
 
             if(obj instanceof StringBuffer){
                    return lenth(((StringBuffer)obj).toString());
             }
 
             if(obj instanceof String){
                    return ((String)obj).getBytes.length;
             }
 
             if(obj instanceof Collection){
                    return ((Collection)obj).size();
             }
      }
}

 

配置文件

<?xml version="1.0" ecoding="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">
 
      <description>custom functionslibrary</description>
      <display-name>customfunctions</display-name>
      <tlibversion>1.1</tlibversion>
      <shortname>function</shortname>
      <uri>http://www.clf.com/tags</uri>
 
 
      <function>
             <description>descriptioncontent </description>
             <name>lenth</name>
             <function-class>com.chen.Funtion</function-class>
             <function-signature>
                    int length(java.lang.Object)
             </function-signature>
             <example>
                    ${fn:length(string)}
             </example>
      <function>
 
</taglib>

 

自定义方法的声明写在 <function-signature>标记里面,格式为

      返回值 方法名(参数1类型,参数2类型……)

 

加入有个String型变量,赋值“字符串测试”

在JSP页面中定义的标签库的前缀是“fn”,则用法如下

                    ${fn:length(string)}

这句话就能输出字符串的长度


郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。