有時候會遇到需要在jsp中調(diào)用java方法的情況,這個問題可以通過自定義JSTl標(biāo)簽的方法解決。
步驟:
1,準(zhǔn)備好Java方法,這里需要注意的是,這個方法必須要是靜態(tài)static修飾的
2,創(chuàng)建一個tld文件,將準(zhǔn)備的方法添加到tld文件中,然后將tld映射添加到web.xml文件中
3,然后就可以在jsp中調(diào)用了
下面是我的示例:
1,java類
public class DataDictionaryUtil { public static String getMean(String type,String num){ if ("bussinessType".equals(type)) { //業(yè)務(wù)種類 if ("1".equals(type)) { return "貸款"; }else if("2".equals(type)){ return "信用卡"; }else{ return null; } } return null; }}2,tld文件(一般都放在WEB-INF目錄下)
<?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"> <description>JSTL 1.1 functions library</description> <display-name>JSTL functions</display-name> <tlib-version>1.1</tlib-version> <short-name>fn</short-name> <uri>http://java.sun.com/jsp/jstl/functions</uri><!-- 添加自定義方法 --> <function> <name>getMean</name> <function-class>com.wangyin.credit.report.util.DataDictionaryUtil</function-class> <function-signature>java.lang.String getMean(java.lang.String,java.lang.String)</function-signature> <example>${fn.getMean(type,code)}</example> </function></taglib>
web.xml文件映射配置(配置在根標(biāo)簽下)
<jsp-config> <taglib> <taglib-uri>/credit</taglib-uri> <taglib-location>/WEB-INF/dtl/credit.tld</taglib-location> </taglib></jsp-config>
3,在jsp中調(diào)用自定義標(biāo)簽
<%@ taglib
- 然后在頁面中進(jìn)行調(diào)用
業(yè)務(wù)種類信息:${credit:getMean('bussinessType','1')}(備注:這里傳遞參數(shù)的時候,單引號,雙引號都可以,1也可以不加引號)4,然后,如果沒有意外的話,你想要的結(jié)果就出現(xiàn)了!
新聞熱點
疑難解答