欢迎访问悦橙教程(wld5.com),关注java教程。悦橙教程  java问答|  每日更新
页面导航 : > > 文章正文

JSP自定义标签开发入门(1)(3)

来源: javaer 分享于  点击 34566 次 点评:146


4 在需要使用此标签的jsp页面头部引入

  1. <%@ taglib uri="/mytaglib" prefix="cc"%> 

5 使用(参照上面的使用步骤)

标签类说明:

我们用到了迭代接口,以下是容器处理此接口的流程

作为目标1中的补充: 在doAfterBody()如果返回值是EVAL_BODY_AGAIN那么将重新执行此方法

目标3:使用BodyTagSupport

此目标并不会使用实际例子进行显示,主要是说明为什么,什么情况下需要使用到BodyTag接口或者BodyTagSupport类?

如果我们需要在 …. 之间的标签体的头部和尾部加上一些标记或者是其他处理,一般的处理方法是在doStartTag和doEndTag方法中进行, 但是如果是个迭代标签,标签体的每段内容在循环输出时每次都需要在头部和尾部加上一些标记,我们使用BodyTagSupport就很方便了,

此接口在doStartTag()方法返回值多了一个EVAL_BODY_BUFFERED,它将对主体进行计算,并输出到缓冲区(注:此处是缓冲区并非直接输出到客户端,需要我们手动(this.bodyContent.getEnclosingWriter().write(this.bodyContent.getString());)进行输出客户端的调用,否则主体内容不会进行显示)

标签类说明:

关于BodyTagSupport接口的说明

目标4:自定义的函数库

1 创建函数库类

  1. public class MyFunctions {  
  2.     public static String formatMyName(String name) {  
  3.        return "your name is " + name;  
  4.     }  
  5.     public static int add(int a, int b) {  
  6.        return a+b;  
  7.     }  

2 在TLD文件中配置 (引用于目标1中的tld文件)

  1. <function> 
  2.     <name>formatMyName</name> 
  3.     <function-class>com.taglib.MyFunctions</function-class> 
  4.     <function-signature>java.lang.String formatMyName(java.lang.String)</function-signature> 
  5.  </function> 
  6.    
  7. <function> 
  8.     <name>add</name> 
  9.     <function-class>com.taglib.MyFunctions</function-class> 
  10.     <function-signature>java.lang.String add(int, int)</function-signature> 
  11.  </function> 

3 JSP中调用

  1. ${cc:formatMyName("wangfei") }  
  2. ${cc:add(12, 34) } 

原文:http://www.cnblogs.com/zhaoyang/archive/2011/12/25/2301108.html


相关栏目:

用户点评