Subscribe

RSS Feed (xml)

Powered By

Skin Design:
Free Blogger Skins

Powered by Blogger

Sunday, December 2, 2007

java code for A custom tag: scripting variable




/java2s
/WEB-INF/java2s.tld


// create File:java2s.tld in the /WEB-INF/
PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN"
"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd">



1.0
1.2
Java2s Simple Tags





defineObjects
com.conygre.jspdevhandbook.chapter9.EmptyTagWithAttrsExport
com.conygre.jspdevhandbook.chapter9.EmptyTagExtraInfo
empty



howMany


name




//compile the following code into WEB-INF\classes\com\java2s
package com.java2s;

import javax.servlet.jsp.tagext.TagData;
import javax.servlet.jsp.tagext.TagExtraInfo;
import javax.servlet.jsp.tagext.VariableInfo;

public class EmptyTagExtraInfo extends TagExtraInfo
{
public VariableInfo[] getVariableInfo(TagData tagData)
{
String exportedArrayName = (String) tagData.getAttribute("name");
VariableInfo exportedArrayInfo = new VariableInfo(exportedArrayName,
"int []",
true,
VariableInfo.AT_END);

return new VariableInfo[] {exportedArrayInfo};
}
}
package com.java2s;

import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;

/* This tag handler generates the random numbers. The "howMany" attribute
specifies how many number to generate and display. The generated array
of integers is exported with nested visibility, through an array named
byte the "name" attribute.
*/

public class EmptyTagWithAttrsExport extends BodyTagSupport
{
// Code to implement the "howMany" attribute
private int howMany;
public int getHowMany()
{
return howMany;
}
public void setHowMany(int i)
{
howMany = i;
}

// Code to implement the "name" attribute
private String exportedArrayName;
public String getName()
{
return exportedArrayName;
}
public void setName(String s)
{
exportedArrayName = s;
}

public int doStartTag() throws JspException
{
int[] outputArray = new int[howMany];
System.out.println("Generating " + howMany + " numbers");

for ( int i=0; i {
outputArray[i] = (int) (Math.random() * 10);
} // end of for ()

pageContext.setAttribute(exportedArrayName, outputArray);

return SKIP_BODY;
}

/* public int doEndTag() throws JspException
{
return super.doEndTag();
}*/
}



// start comcat and load the following jsp page in browser
<%@ taglib uri="/java2s" prefix="java2s" %>
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>



A custom tag: scripting variable


output:










No comments: