自定義jsp標籤字符串是否屬於數組字符串

前段時間用到了jsp頁面判斷一個字符串是否屬於一個數組、找了許久也沒找到這個標籤,通過各類折磨後本身自定義了一個標籤類,但願給須要的朋友一些借鑑java

第一步:
    在WEB-INF文件夾下新建一個tld文件,內容以下
<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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
  version="2.0">
  <description>JSTL 1.1 functions library</description>
  <display-name>JSTL functions</display-name>
  <tlib-version>1.0</tlib-version>
  <short-name>mcTagLibrary</short-name>
  <uri>/mc</uri>     
  <function>
    <description>
      Tests if an input string eques the specified substring.
    </description>
    <name>equals</name>
    <function-class>com.cn.zx.common.Mction</function-class>
    <function-signature>boolean equals(java.lang.String, java.lang.String)</function-signature>
    <example>
     ${mc:equals(name, searchString)
    </example>
 </function>   
 
<function>
    <description>things is not arrays</description>
    <name>arrayone</name>
    <function-class>com.cn.zx.common.Mction</function-class>
    <function-signature>boolean arrayone(java.lang.String,java.lang.String,java.lang.String)</function-signature>
    <example>
      ${arrayone(string,arrayString,split)}
    </example>
 </function>  
 </taglib>web

 第二步:
     新建自定義標籤類
/**
 * 自定義標籤類
 * @author Maochao-zhu
 *
 */
public class Mction {
    
    /**
     * 判斷兩個字符串是否相等
     * @param input
     * @param substring
     * @return 相等返回true/不相等返回false
     */
    public static boolean equals(String input, String substring) {
         if(input.equals(substring)){ 
             return true;
         }
        return false;
    } 
    
    /**
     * 判斷字符是否屬於該字符串數組、字符串截取字段 split
     * exp: arrayone('1','1,23,4',',')
     * 數組是否包含字符串
     * @param input
     * @param array
     * @return
     */
    public static boolean arrayone(String input, String arrayString,String split) {
        if(null==input || null == arrayString || null == split ) return false;
        String [] array = arrayString.split(split);
        if(null==array) return false;
        for (int i=0; i<array.length; i++) {
           if(input.equals(array[i])){ 
               return true;
           }
        }
        return false;
   }
}數組

第三步:
    在jsp也沒引入你的自定義標籤
    <%@taglib prefix="m" uri="/mc" %> jsp

第四步:
    在jsp也沒就能夠使用你的標籤了
    ${m:arrayone('1','1,23,4',',')}
    這個頁面顯示的true,意思就是:數字1是否屬於後面的1,23,4.net

    其實也有一個標籤是 ${fn:contains('1','1,23,4')}下面是用法,可是若是是是這樣的這樣的字符串就不能判斷出來了,${fn:contains('1','21,23,4')} 這個判斷出來的值是true,這個意思是,後面的字符串中存在前面的1值,21中包含1,因此說存在返回truexml

    <c:set var="theString" value="I am from runoob"/>
    <c:if test="${fn:contains(theString, 'runoob')}">
       <p>找到 runoob<p>
    </c:if>
    <c:if test="${fn:contains(theString, 'RUNOOB')}">
       <p>找到 RUNOOB<p>
    </c:if>
 ip

相關文章
相關標籤/搜索