JSP自定义标签 实例加讲解

老规矩 先来个实例:

实例

例1:以空标签为例
DisplayAllTag.java
package tags;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;

public class DisplayAllTag extends TagSupport{
public DisplayALlTag(){
 System.out.println("DisplayAllTag构造函数");
}

public int doStartTag() throws JspException{
//系统开始运行这个标签时自动调用
System.out.prinltn("doStartTag");
return this.SKIP_BODY;//空体标签不要对体求值
}

public int doEndTag() throws JspException{
//系统结束运行这个标签时自动调用
System.out.println("doEndTag");
//做你想做的事这里

//显示成为表格

JspWriter out = pageContext.getOut();//得到out
//pageContext.getRequest();得到request
//pageContext.getResponse();得到response
//pageContext.getSession();得到session
//pageContext.getServletContext();得到application
try{
out.println("<table bgColor=yellow");
out.println("<tr>");
out.pritln("<td></td>");
}catch (Exception ex){
ex.printStatckTrace();
}

return this. EVAL_PAGE;//让标签后面的Jsp继续执行

}

}


stu.tld:标签库文件  放在webInfo下即可, 或者放在某个地方,在web.xml中定义
头两行,tld文件共有的,见其他tld文件

<taglib>  <!--标签库定义文件根节点:taglib-->
<tlibversion>1.2</tlibversion>  <!--标签库版本 -- > 
<jspversion>1.1</jspversion>   <!-- jsp版本-->
<shortname>stu</shortname>     <!标签库名称 -->
<uri> stu </uri>               <!--uri: 很重要! 外界导入标签库时认识的名称>
<!-- 定义标签 -->
<tag>
 <name>displayAll</name>
 <tagclass>tags.DisplayAllTag</tagclass> <!--对应的类-->
</tag>
</taglib>

 

dispalyAll.jsp:  应用自定义标签的jsp页面

<%@ taglib uri="stu"  prefix="stu" %>

<body>
 <stu:displayAll></stu:displayALl>
</body>

例2:
增加属性

类中: 写出属性, 并有set get方法(javaBean 风格)
tld中:<tag>
 <name> displayBySex</name>
 <tagclass>tags.DisplayBySexTag</tagclass>
 <attribute>
  <name>sex</name>
  <required>true</required>
 </attribute>
       </tag>
jsp中: 直接调用即可 会自动出现属性,然后你自己赋属性的值

注: 接受表达式问题
<%String str ="江苏";%>
<stu:displayBySA add = "<%=str%>"></stu:displayBySA>
需要在标签中加入:
<rtexpvalue>true</rtexprivalue> <!--是否可以接收表达式-->

 

 

下面是理论:

理论:

一个标签的引用
••<bean:write name=name=““studentstudent””/>/>前缀属性值••至少需要让JSPJSP文件做以下事情:看到标签之后,执行相应的程序;能够识别不同属性,知道不同属性的相应作用;不同属性赋不同的值,应该有不同的反映

 

标签种类
••空标签,没有属性 ,,也没有体
••<html:submithtml:submit/>/>
••<html:submithtml:submit></</html:submithtml:submit>>
••空体标签,有属性 ,,没有体
••<bean:write name=name=““studentstudent””/>/>
••<bean:write name=name=““studentstudent””></bean:write>></write>
••有属性有体标签:
••<logic:iterate idid="book" "namename=="books""books">>
••<bean:write namename="book""book"/>/>
••</</logic:iteratelogic:iterate>

 

自定义标签的要素

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值