Jsp自定义标签

自定义标签

今天讲的内容是我们在jsp中很重要的知识。我们这次好好介绍一下

首先我们要知道啊!在jsp页面中根据规定是不能出现脚本的!也就是说不能出现<%%>这样的符号的!而我们的sun公司就提供了我们这个自定义标签。下面让我们一起来学习一下自定义标签吧!

首先我们看看自定义标签在jsp中使用!首先我们用一个最简单的!我们创建一个输出客户端的ip的:

一共需要3 个步骤

1.       我们用Myeclipse创建一个jsp文件。在jsp想显示ip的地方写一个自定义的标签如:<csdn:TageDemo1>

2.       我们在看一下那个java类是怎么写的:在这样的类中我们是集成了TagSupport这个类。然后我们看一下jeeAPI。我们首先获取到request对象因为这个java中没有jsp的隐藏对象。我们获取out对象然后输出当前的ip就行了。

3.       我们在本web的项目的web—inf的文件夹下创建一个tld的文件如下图:

首先我们看<short-name><short-name>这个是在标签上相当于那个<csdn:TageDemo1>中的csdn,我们理解一下就行了

<uri> </uri>可以随便写一下。因为这是找到这个的路径tld文件

最后我们看一下<tag></tag>这个里面的那个name这个标签这个就是相当于<csdn:TageDemo1>中的TageDemo1。我们也是我们也解释一下

我们就这样创建一个这样的tld就行了。

注意在jsp文件中添加上<%@taglib uri="http://www.hbsi.edu.cn" prefix="hbsi"%>这样的一句话uri就是我们上面介绍的。prefix就是那个short-name。这样我们在body中写上:<csdn:TageDemo1>就能显示出来。

下面我们介绍一下难一点的:

我们怎么让body输出的内容不输出呢?

一、               是这样的我们在那个java文件中的那个dostartTag这个的方法中返回值是Tag.SKIP_BODY,那么我们就看不到那个在标签里面的内容了。Tag.EVAL_BODY_INCLUDE就能显示出来了

二、怎么省略这个页面不显示呢?是这样的我们在这个jsp的开始的文件标签上面添加上我们的自定义的标签,然后我们在对应得java中写上

    public int doEndTag() throws JspException{

              //TODO Auto-generated method stub

              returnSKIP_PAGE;

三、 我们怎么在网页中重复显示内容呢?我们还是用自定义标签这次是 public int doAfterBody() throws JspException {

       count--;

       System.out.println(count);

       if(count>0){

           return IterationTag.EVAL_BODY_AGAIN ;

       }else {

           count=5;

           return IterationTag.SKIP_BODY;

       }

    }

解释一下这个doAferbody()这个函数如是返回值是IterationTag.EVAL_BODY_AGAIN ;的那个我们继续进行输出。如果IterationTag.SKIP_BODY我们就返回下一步

四、我们怎么更改内容呢?是这样的我们在doEndTag()这个函数中写

public int doEndTag() throws JspException {

       BodyContent bc=this.getBodyContent();

       String string=bc.getString();

       string=string.toLowerCase();

       try {

           pageContext.getOut().write(string);

       } catch (IOException e) {

           // TODO Auto-generatedcatch block

           throw new RuntimeException();

       }

       return Tag.EVAL_PAGE;

    }

public int doStartTag() throws JspException {

       // TODO Auto-generatedmethod stub

       return EVAL_BODY_BUFFERED;

    }

    就是说我们把说有的字符变成了小写。就是这样的。我们讲课不深大家好好理解一下就行了。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值