当前位置:编程学习 > JS >>

自定义JSTL函数

一、JSTL标签的使用
首先,让我们先来了解一下JSTL标签的使用。
(1)标签库的配置
将jstl.jar和standard.jar拷贝到WEB-INF/lib下(如果使用el表达式,不用拷贝这两个jar)
注意:JSTL只能运行在支持JSP1.2和Servlet2.3规范的容器上,如tomcat 4.x。
(2)标签库的使用
采用taglib指令引入,如:
<%@ taglib prefix="c"  uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
二、JSTL的优点
为什么使用JSTL,JSTL又有哪些优点?
(1)在应用程序服务器之间提供了一致的接口,最大程序地提高了WEB应用在各应用服务器之间的移植。
(2)简化了JSP和WEB应用程序的开发。
三、自定义标签库
许多(web?)开源框架都提供了大量的标签库(taglib)。但面对各种各样、永无止境的需求,实际应用中总会出现我们需要、但暂时无法找到或者没有提供的一系列标签,由此,自定义标签和函数应运而生。
对于自定义标签,《JSP2的自定义标签》,以供参考。
自定义标签库是一种非常优秀的表现层组件技术。通过使用自定义标签库,可以在简单的标签中封装复杂的功能。
当我们在JSP页面使用一个简单的标签时,底层实际上由标签处理类提供支持,从而可以使用简单的标签来封装复杂的功能,从而使团队更好地协作开发(能让美工人员更好地参与JSP页面的开发)。
四、自定义函数库
自定义函数,简单的讲,其实就是我们写的一些类的方法操作,需要在页面中调用。
下面以OA中出现的自定义JSTL函数为例。OA中在两处用到了自定义JSTL函数,一处是下面的例子,需要在页面中进行权限的即时认证,一处是结合Freemarker和JSTL函数,动态显示表单。
业务介绍:在JSP页面上,调用JSTL函数做即时认证,只有通过认证之后,才显示相应的(功能)按钮/菜单/输入框等。
1.定义函数类(方法为public static)
[java]  
/** 
 * JSTL函数,主要功能是可以完成权限的即时认证 
 * @author Administrator 
 * 
 */  
public class SecurityFunctions {  
      
    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) {  
        SecurityFunctions.aclManager = aclManager;  
    }  
}  
2.定义tld文件:my.tld,并放到WEB-INF下
[html]  
<?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.web.SecurityFunctions</function-class>  
    <function-signature>boolean hasPermission(int, java.lang.String,int)</function-signature>  
  </function>  
</taglib>  
3.修改web.xml文件,添加:
[html]  
<jsp-config>  
    <taglib>  
        <taglib-uri>http://www.bjsxt.com/oa/functions</taglib-uri>  
        <taglib-location>/WEB-INF/my.tld</taglib-location>  
    </taglib>  
</jsp-config>  
4.JSP页面引入
[html] www.zzzyk.com
<%@ taglib prefix="my"  uri="http://www.bjsxt.com/oa/functions" %>  
 
注意:uri在web.xml和jsp页面引入需要一致;
web.xml中的uri可以与location一致,也可以与tld文件中的uri一致,一般三者的uri一致
5.JSP页面使用
简单示例:
[html] 
${my:testJstlFunction('teststring')}  
上述JSTL函数使用示例:
[html]  ssion(login.id,'person',3) }">  
    <a href="#" onclick="del('person.do?method=del&id=${person.id }');">删除</a>  
补充:web前端 , JavaScript ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,