定制标志示例

 ◆标志体内容定义为可以向客户机返回的任何内容
标志体内容类型包括以下3个值:
1)<body-content>empty</body-content>除了HTML注释外,定义为empty的标志体中不能包括任何内容,因为标志体内容会向客户机返回内容。
2)<body-content>JSP<body-content/>:这种标志体可以包括普通的JSP页面元素,用JSP作为体内容类型时,体内容和普通JSP内容一样处理,即,执行小脚本、表达式求值等。
3)《body-content》tagdependent《body-content/》:表示JSP容器不处理内容,而是让标志去处理/求值内容。

 定制标志示例
★(1)编写标志处理器:
public class DateTag extends TagSupport()
public int doStartTag throws JspException{
Locale loc=pageContext.getRequest().getLocale();
... ...
return SKIP_BODY
}
◆(2)编写标志库描述项:
编写标志处理器类之后,要项web容器提供一些关于标志的信息。为此,可以使用标志描述项,也称TLD文件。

◆(3)注册标志库:在把标志处理器和TLD文件部署(拷贝到相应位置)到Web应用程序后,需要注册标志库,为此,需要在web.xml中添加一小段。定义URL与TLD文件地址之间的映射。

◆(4)导入和使用标志库:完成以上步骤后,就可以使用标志库了,就像核心java.lang包之外的任何java类都要先导入后使用一样,标志库中的标志也要导入:《%◎taglib uri="/simpleTaglib" prefix="simple"%◎》,它指出JSP页面使用标志库,由指定的URI引用,这个URI在Web.xml中定义,prefix属性将标志库中的标志与前缀相关联。本例中选择sample作为前缀。

display date use Tag lib
the date is: 2005-8-19
◆(5)标志属性:
(1)如果web应用程序的不同页面要求标志显示不同格式的日期,可以对每个显示格式生成新的定制标志,但这增加了工作,而且难于维护,这时我们可以使用属性

◆(6)属性语法包括两部分
1>名称:在标志环境中唯一。
2>数值:需用引号括起。

◆(7)属性类型:
1>对于转换的值,如《prefix:tag attribute="123"》,Jsp容器会进行自动地隐式参数转换(调用相应的ValueOf(String)方法)
2>对于请求时的值,如《prefix:tag attribute="《%=a》"》,将不进行自动类型转换,需要自己转换。

★增加属性
1)第一步,修改标志处理器类:
private String format;
public void setFormat(String format){
this.format=format;
}

◆2)修改doStartTag方法:
if (this.format!=null) ... ...
else ... ...
(3)修改标志库描述,添加《attribute》标签,其中《rtexprvalue》布尔属性表示属性是否接收JSP表达式的结果值,true/yes为可以接收JSP表达式的结果值,即如此调用:《prefix:tag attribute="《%=a》"》

◆3)使用标志《prefix:tag format="dd-MMM-YYYY"/》

display date use Tag lib attribute
the date is:19-八月-2005
★增加对象属性

display date use Object attribute tomorrow is20-八月-2005

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值