Java Tutorial/JSP/Custom Tag

Материал из Java эксперт
Перейти к: навигация, поиск

Custom Tag Accepting Fragments

Custom Tag As Template

Custom Tag Dynamic Attributes

Custom Tag For Display message

Custom Tag For Iteration

MyTag.java



   <source lang="java">

package taglib; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.IOException; public class MyTag extends TagSupport {

 private int counter = 0;
 private String[] names = null;
 public int doStartTag()
 {
   names = (String[]) pageContext.getAttribute("names");
   return EVAL_BODY_INCLUDE;
 }
 public int doAfterBody() throws JspException
 {
   try{
     pageContext.getOut().print(" " + names[counter] + "
"); } catch(Exception e){ throw new JspException(e.toString()); } counter++; if(counter >= names.length) { return SKIP_BODY; } return EVAL_BODY_AGAIN; }

}</source>





Custom Tag For Outputing Message To Console

MyTag.java



   <source lang="java">

package taglib; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.IOException; public class MyTag extends TagSupport {

   public int doStartTag() throws JspException 
   {
       return EVAL_BODY_INCLUDE;
   }
   
   public int doAfterBody() throws JspException 
   {
           System.out.println("Hello!");
           return SKIP_BODY;
   }

}</source>





Custom Tag For Shuffling Color

Custom Tag Set Bean Value

Custom Tag Setup Environment

Custom Tag Support

HelloWorld.java



   <source lang="java">

package beans; import javax.servlet.http.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.util.*; public class HelloWorld extends TagSupport {

   public int doStartTag() throws JspException
   {
       try
       {
           JspWriter out = pageContext.getOut();
           HttpServletResponse response = (HttpServletResponse)pageContext.getResponse();
           out.write("Hello world!");
       }
       catch(Exception e)
       {   
           throw new JspException(e.getMessage());
       }
       return EVAL_PAGE;
   }

}</source>





Custom Tag To Get Parameter From PageContext

MyTag.java



   <source lang="java">

package taglib; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.IOException; public class MyTag extends TagSupport {

 private int counter = 0;
 private String[] names = null;
 public int doStartTag()
 {
   names = (String[]) pageContext.getAttribute("names");
   return EVAL_BODY_INCLUDE;
 }
 public int doAfterBody() throws JspException
 {
   try{
     pageContext.getOut().print(" " + names[counter] + "
"); } catch(Exception e){ throw new JspException(e.toString()); } counter++; if(counter >= names.length) { return SKIP_BODY; } return EVAL_BODY_AGAIN; }

}</source>





Custom Tag To Insert Text

MyTag.java



   <source lang="java">

package taglib; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.IOException; public class MyTag extends TagSupport {

 public int doEndTag() throws JspException {
   try {
     pageContext.getOut().print("Hello from JSP!");
   } catch (Exception e) {
     throw new JspException(e.toString());
   } 
   return EVAL_PAGE;
 } 

}</source>





Custom Tag Using Beans

Custom Tag Web URI Definition

Custom Tag Web XML Tag Lib

HelloWorld.java



   <source lang="java">

package beans; import javax.servlet.http.*; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.util.*; public class HelloWorld extends TagSupport {

   public int doStartTag() throws JspException
   {
       try
       {
           JspWriter out = pageContext.getOut();
           HttpServletResponse response = (HttpServletResponse)pageContext.getResponse();
           out.write("Hello world!");
       }
       catch(Exception e)
       {   
           throw new JspException(e.getMessage());
       }
       return EVAL_PAGE;
   }

}</source>





Custom Tag With Attributes

Custom Tag Without TLD

Custom Tag With Property

MyTag.java



   <source lang="java">

package taglib; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.IOException; public class MyTag extends TagSupport {

 String text;
 public void setText(String s) {
   text = s;
 } 
 public int doEndTag() throws JspException {
   try {
     pageContext.getOut().print(text);
   } catch (Exception e) {
     throw new JspException(e.toString());
   } 
   return EVAL_PAGE;
 } 

}</source>





Extends Tag Support DoEndTag

MyTag.java



   <source lang="java">

package taglib; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.IOException; public class MyTag extends TagSupport {

 public int doEndTag() throws JspException {
   try {
     pageContext.getOut().print("Hello from JSP!");
   } catch (Exception e) {
     throw new JspException(e.toString());
   } 
   return EVAL_PAGE;
 } 

}</source>





Jars For Custom Tag Development

MyTag



   <source lang="java">

package taglib; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; import java.io.IOException; public class MyTag extends TagSupport {

   public int doStartTag() throws JspException 
   {
       return EVAL_BODY_INCLUDE;
   }
   
   public int doAfterBody() throws JspException 
   {
           System.out.println("Hello!");
           return SKIP_BODY;
   }

}</source>





Reference Tag Using Tag Dir

Jsp page with custom tag



   <source lang="java">

<%@ taglib prefix="myTag" tagdir="/WEB-INF/tags" %>

<html> <head> <title>EL Type Conversion Examples</title> </head> <body>

EL Type Conversion Examples

<myTag:CharacterType val="this is it"/> <myTag:CharacterType val="8"/> <myTag:CharacterType val="3.0001"/>
<myTag:DoubleType val=""/> <myTag:DoubleType val="-3"/>
<myTag:BooleanType val=""/> <myTag:BooleanType val="true"/> <myTag:BooleanType val="t"/> <myTag:BooleanType val="3.1"/>

</body> </html></source>





Repeat Tag

   <source lang="java">

/*

  • Licensed to the Apache Software Foundation (ASF) under one or more
  • contributor license agreements. See the NOTICE file distributed with
  • this work for additional information regarding copyright ownership.
  • The ASF licenses this file to You under the Apache License, Version 2.0
  • (the "License"); you may not use this file except in compliance with
  • the License. You may obtain a copy of the License at
  • http://www.apache.org/licenses/LICENSE-2.0
  • Unless required by applicable law or agreed to in writing, software
  • distributed under the License is distributed on an "AS IS" BASIS,
  • WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  • See the License for the specific language governing permissions and
  • limitations under the License.
  • /

package beans; import javax.servlet.jsp.JspException; import javax.servlet.jsp.tagext.SimpleTagSupport; import java.util.HashMap; import java.io.IOException; /**

* SimpleTag handler that accepts a num attribute and 
* invokes its body "num" times.
*/

public class RepeatSimpleTag extends SimpleTagSupport {

   private int num;
   public void doTag() throws JspException, IOException {
       for (int i=0; i<num; i++) {
           getJspContext().setAttribute("count", String.valueOf( i + 1 ) );
     getJspBody().invoke(null);
       }
   }
   public void setNum(int num) {
 this.num = num;
   }

}</source>