定義本身的JSTL標籤庫

    首先定義一個本身的類,在類中定義本身想實現的方法,固然此方法爲靜態方法,列如定義一個將字符串的每一個單詞換成大寫:java

/**
 * 自定義函數標籤
 * */
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文件,接上:
web

<?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文件中註冊一下了,具體內容以下:
app

<!-- 註冊標籤庫 -->
	<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頁面中引入本身的標籤庫:
jsp

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

   在下文就能夠使用了:函數

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

菜鳥一個有不當之處還請指教,謝謝~code

相關文章
相關標籤/搜索