定义自己的JSTL标签库

    首先定义一个自己的类,在类中定义自己想实现的方法,当然此方法为静态方法,列如定义一个将字符串的每个单词换成大写:

/**
 * 自定义函数标签
 * */
public class MyFunctionTag {

	/**
	 * 方法必须是静态的
	 * */
	public static String cap(String text) {
		String[] arr = text.split("\\s+");
		StringBuffer sb = new StringBuffer();
		for(String str : arr) {
			sb.append(str.substring(0, 1).toUpperCase() + str.substring(1));
			sb.append(" ");
		}
		if(sb.length() >= 1) {
			sb.deleteCharAt(sb.length()-1);
		}
		return sb.toString();
	}
	
}

    既然函数写好了,那么在建这样一个/WEB-INF/tag/myfun.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>//是不是不许要写,可把鼠标放在taglib xmlns=".."就可以看到了
	<short-name>myfn</short-name>//别名
	<uri>http://tag.zs.com/myfun</uri>
	
	<function>
    	<name>cap</name>
    	<function-class>com.kzw.tag.MyFunctionTag</function-class>
    	<function-signature>java.lang.String cap(java.lang.String)</function-signature>//类型必须带上//包名
  	</function>
  
</taglib>

  现在就该在web.xml文件中注册一下了,具体内容如下:

<!-- 注册标签库 -->
	<jsp-config>
		<taglib>
			<taglib-uri>http://tag.zs.com/myfun</taglib-uri>
			<taglib-location>/WEB-INF/tag/myfun.tld</taglib-location>
		</taglib>
	</jsp-config>

    注册好了就该使用了,jsp页面中引入自己的标签库:

<%@ taglib uri="/WEB-INF/tag/myfun.tld" prefix="mfn"%>

   在下文就可以使用了:

${mfn:cap(name)} <br>

菜鸟一个有不当之处还请指教,谢谢~

你可能感兴趣的:(jstl,自定义JSLT)