JSP页面如何访问标签中定义的变量-使用实现

本文介绍了如何在JSP页面中访问自定义标签定义的变量。通过创建标签类并定义TLD文件,我们可以根据标签的属性动态设置变量名,如在jsp页面中使用<testvar:testvar id="message"/>。在运行时,能够成功打印出标签类中变量message的值,实现了变量的交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先定义标签类:

其中message为变量名

package  testtag;

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

public   class  TestVar  extends  TagSupport  {

    @Override
    
public int doStartTag() throws JspException {
        
try{
            JspWriter out
=pageContext.getOut();
            out.println(
"in doStartTag");
            pageContext.setAttribute(
"message""hello");
        }
catch(Exception e){
            e.printStackTrace();
        }

        
return(SKIP_BODY);
    }

   
}

 定义TLD文件

其中<name-from-attribute>id</name-from-attribute>说明变量名可分局自定义标签的id属性动态设置

  < taglib >
    
< tlib-version > 1.0 </ tlib-version >
     
< jsp-version > 1.2 </ jsp-version >
      
< short-name > c_rt </ short-name >
      
< uri > http://fff/t </ uri >
      
< display-name > JSTL core RT </ display-name >
       
< description > JSTL 1.0 core library </ description >
     
   
< tag >
    
< name > testvar </ name >
    
< tag-class > testtag.TestVar </ tag-class >
    
< body-content > empty </ body-content >
    
< description >
      test var
    
</ description >
    
< variable >
      
< name-from-attribute > id </ name-from-attribute >
      
< variable-class > String </ variable-class >
      
< declare > true </ declare >
      
< scope > AT_BEGIN </ scope >
    
</ variable >
    
< attribute >
      
< name > id </ name >
      
< required > true </ required >
    
</ attribute >
  
</ tag >
  
</ taglib >


jsp:

此处<testvar:testvar id="message"/>设定变量名称为message

<% @ page language="java" contentType="text/html; charset=GB18030"
    pageEncoding
="GB18030"
%>
    
<% @ taglib uri="testtag" prefix="testvar"  %>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
< html >
< head >
< meta  http-equiv ="Content-Type"  content ="text/html; charset=GB18030" >
< title > Insert title here </ title >
</ head >
< body >
< testvar:testvar  id ="message" />
${message}
</ body >
</ html >

 

运行结果如下:

in doStartTag hello ,可见,可以打印出在标签类中变量message的内容hello

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值