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

首先定义标签类:

其中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



你可能感兴趣的:(html,C++,c,jsp,servlet)