1:web.xml里配置:
<jsp-config>
<taglib>
<taglib-uri>http://www.bjsxt.com/myfunctions</taglib-uri>
<taglib-location>/WEB-INF/my.tld</taglib-location>
</taglib>
</jsp-config>
2:my.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>my</short-name>
<uri>http://www.bjsxt.com/oa/functions</uri>
<function>
<name>hasPermission</name>
<function-class>com.bjsxt.oa.util.SecurityFunction</function-class>
<function-signature>boolean hasPermission(int,java.lang.String,int)</function-signature>
</function>
<function>
<name>form</name>
<function-class>com.bjsxt.oa.util.DynaFormFunction</function-class>
<function-signature>java.lang.String form(int)</function-signature>
</function>
<function>
<name>orgTree</name>
<function-class>com.bjsxt.oa.functions.OrgTreeFunction</function-class>
<function-signature>java.lang.String tree(java.util.List)</function-signature>
</function>
</taglib>
SecurityFunction .java:
import com.bjsxt.oa.manager.ACLManager;
public class SecurityFunction {
private static ACLManager aclManager;
public static boolean hasPermission(int userId,String resourceSn,int permission){
return aclManager.hasPermissionByResourceSn(userId, resourceSn, permission);
}
//这个方法不能定义为static,因为这将导致spring无法注入
public void setAclManager(ACLManager aclManager) {
SecurityFunction.aclManager = aclManager;
}
3:定义自定义标签的使用前缀:
common.jsp:
<%@ taglib prefix="bean" uri="http://struts.apache.org/tags-bean" %>
<%@ taglib prefix="logic" uri="http://struts.apache.org/tags-logic" %>
<%@ taglib prefix="html" uri="http://struts.apache.org/tags-html" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<%@ taglib prefix="pg" uri="http://jsptags.com/tags/navigation/pager" %>
<%@ taglib prefix="my" uri="http://www.bjsxt.com/myfunctions" %>
4:自定义标签的使用示例:
这里也暂时找不到了,以后用到的时候再补上吧,呵呵。