JSTL自定义标签

来源:互联网 发布:linux查内存大小 编辑:程序博客网 时间:2024/04/28 22:39

1.写标签功能模块,

  类名:StringTools.java

 

package cn.yixinet.tools;


public class StringTools {

 
  public static List<String> stringDelim(String str,String delim){
    if(delim==null)  delim = ", ";
    if(str==null||str.trim().equals("")||str.trim().equals(","))  return null;


    StringTokenizer st = new StringTokenizer(str,delim);
    ArrayList<String> array = new ArrayList<String>(5);
    while(st.hasMoreTokens()){
      array.add(st.nextToken());
    }
    return array;
  }

 
  public static String makeTagHref(String tags,String delim,String url){
    if(tags==null||tags.trim().equals(""))  return "";


    List<String> l = stringDelim(tags, delim);
    StringBuilder sb = new StringBuilder();
    for(String str : l){
      sb.append("&nbsp;<a href=/"");
      sb.append(url);
      sb.append(str);
      sb.append("/" target=/"blank/">");
      sb.append(str);
      sb.append("</a>&nbsp;");
    }
    return sb.toString();
  }

}

 

2.编写标签映射配置

  文件名:keywordtag.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 http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"  
  version="2.0">  
       
  <tlib-version>1.0</tlib-version>  
  <short-name>keytag</short-name>  
  <uri>http://java.sun.com/jstl/keywordtag</uri>  
     
  <!-- JSTL自定义函数 拆分关键字 --> 
  <function>  
    <name>makeTagHref</name>              
    <function-class>cn.yixinet.tools.StringTools</function-class>  
    <function-signature>java.lang.String makeTagHref(java.lang.String,java.lang.String,java.lang.String)</function-signature>  
  </function>  
</taglib>

 

3.Web.xml配置

  <taglib>
   <taglib-uri>http://java.sun.com/jstl/keywordtag</taglib-uri>
   <taglib-location>/WEB-INF/lib/keywordtag.tld</taglib-location>
  </taglib>

 

4.JSP页面调用

<%@taglib uri="http://java.sun.com/jstl/core" prefix="c"%>

<%@taglib uri="http://java.sun.com/jstl/keywordtag" prefix="keytag"%>

<body>

  <c:set value="${pageContext.request.contextPath}/yisou/" var="pathys" scope="page"/>

  关键字:${keytag:makeTagHref(newsD.akeywords, ", ;", pathys)}

</body>

原创粉丝点击