JSTL 自定义Function函数标签

时间:2022-02-27 04:44:10
1.首先编写类,注意:类里面的变量与方法必须是static的;

  如:

  Java代码  

public class TestFunction { 
 
 private static ProductInfoManager productInfoManager = (ProductInfoManager) Platform.getInstance().getBean("productInfoManager"); 
 
 public static List getLastDataByType(int type, int lastSize) { 
 return productInfoManager.getLastDataByType(type, lastSize); 
 } 
 
 public static Boolean isLogin() { 
 Customer customer = (Customer) ServletActionContext.getRequest().getSession().getAttribute(SessionUser.Customer_Session_User_Key); 
 if (null == customer) { 
  return false; 
 } 
 return true; 
}


2.定义tld文件;

  如:

  Java代码

<?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>my</short-name> 
 <uri>http://www.myproject.com/my/functions</uri> 
 
 <function> 
  <name>getLastDataByType</name> 
  <function-class>com.myproject.app.util.TestFunction</function-class> 
  <function-signature>java.util.List getLastDataByType(int,int)</function-signature> 
 </function> 
 <function> 
  <name>isLogin</name> 
  <function-class>com.myproject.app.util.TestFunction</function-class> 
  <function-signature>boolean isLogin()</function-signature> 
 </function> 
 
</taglib>

3.JSP引入;

  如:

  <%@ taglib uri="http://www.myproject.com/my/functions" prefix="my"%>

4.使用;

  如:${my:isLogin()};

  ${my:getLastDataByType(2,5)}