Java >> Java tutorial >  >> Java

JSP brugerdefinerede tags

Tilpassede tags er kendt som brugerdefinerede tags . Når en JSP-side indeholdende et brugerdefineret tag udføres, tagget oversættes til en servlet, og tag-handlingerne udføres på objektet af en Tag Handler .

For at kunne oprette et brugerdefineret tag, skal vi kende nedenstående tre highlightere.

  • Tag Handler: Tag Handler-klassen indeholder de operationer, der skal udføres, når en JSP-side med brugerdefineret tag udføres.
  • TLD-fil:  TLD'en er en deskriptorfil, som indeholder detaljerne om vores tag såsom tagnavn, tagklasse, og attributter.
  • JSP-side: En side, hvor vi vil bruge vores tilpassede tag.

I dette eksempel lærer vi, hvordan du opretter et brugerdefineret tag og udskriver "Custom Tag Eksempel!!!" når vores brugerdefinerede tag udføres.

Tag Handler Class (MyCustomTag.java)

Vores MyCustomTag-klasse fungere som en Tag Handler-klasse, der udvider SimpleTagSupport klasse, og vi skal tilsidesætte doTag() metode, hvor vi skal placere koden, som skal udføres, når vores brugerdefinerede tag støder på.

package com.javainterviewpoint;

import java.io.IOException;
import javax.servlet.jsp.JspWriter;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class MyCustomTag extends SimpleTagSupport
{
    @Override
    public void doTag() throws IOException
    {
        JspWriter out = getJspContext().getOut();
        out.print("<h3>Custom Tag Example!!!</h3>"); 
    } 
}

I ovenstående kode får vi den aktuelle JspContext ved hjælp af getJspContext() metode, og ved at bruge den skriver vi vores brugerdefinerede besked “Custom Tag Eksempel!!!”

TLD-fil (custom.tld)

Vores TLD-fil skal placeres på placeringen “<>/WebContent/WEB-INF/custom.tld”  og vores fil skal altid ende med .tld endelsen

Vigtige tags i vores custom.tld er

: Vores tilpassede tagnavn (mytag)  som vi vil bruge på vores jsp-side.
: vi skal give vores fuldt kvalificerede vej til Tag Handler-klassen inklusive pakken. Vores Tag Handler-klasse er MyCustomTag klasse, hvis fulde sti skal gives.
Vi vil diskutere om dette senere, som nu nævner det som tomt.

 <taglib>
     <tlib-version>1.0</tlib-version>
     <jsp-version>2.0</jsp-version>
     <short-name>My Custom Tag</short-name>
     <tag>
         <name>mytag</name>
         <tag-class>com.javainterviewpoint.MyCustomTag</tag-class>
         <body-content>empty</body-content>
     </tag>
</taglib>

JSP-side

Vi har oprettet vores tilpassede tag mytag  som vi vil bruge her. Brug af taglib direktiv, skal vi tilføje uri'en til vores tld-fil  og præfiks at ringe til vores tag. Så nu kan vi kalde vores brugerdefinerede tag ved at kalde

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
 pageEncoding="ISO-8859-1"%>
<%@taglib uri="/WEB-INF/custom.tld" prefix="my" %>
<!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=ISO-8859-1">
        <title>Insert title here</title>
    </head>
    <body>
        <my:mytag/>
    </body>
</html>

Output
Når vi kører ovenstående jsp-side, får vi nedenstående output

Custom Tag Example!!!

Java tag