自定义jsp标签字符串是否属于数组字符串

前段时间用到了jsp页面判断一个字符串是否属于一个数组、找了许久也没找到这个标签,经过各种折磨后自己自定义了一个标签类,希望给需要的朋友一些借鉴

第一步:
    在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>

 第二步:
     新建自定义标签类
/**
 * 自定义标签类
 * @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也没就可以使用你的标签了
    ${m:arrayone('1','1,23,4',',')}
    这个页面显示的true,意思就是:数字1是否属于后面的1,23,4

    其实也有一个标签是 ${fn:contains('1','1,23,4')}下面是用法,但是如果是是这样的这样的字符串就不能判断出来了,${fn:contains('1','21,23,4')} 这个判断出来的值是true,这个意思是,后面的字符串中存在前面的1值,21中包含1,所以说存在返回true

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

转载于:https://my.oschina.net/u/3204029/blog/3043684

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值