前段時間用到了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