Show TOC

Function documentationDirectives Locate this document in the navigation structure

 

You use directives to pass information to the Web Container. They do not generate output and are independent of user requests.

Features

Directives have the following general syntax:

Syntax Syntax

  1. <%@ directive {attribute="value"}* %>
End of the code.

There are six types of directives (the last three directives are used only in tag files, see Developing Tag Files):

  • page

    The page directive is executed at translation time. You use It to define page-dependent properties for the whole JSP page, such as buffer size, session preferences, character encoding, and so on. The syntax of the page directive is <%@ page page_directive_attr_list %>.

    For more information, see Using the page Directive.

    Example Example

    1. <%@ page pageEncoding="UTF-8" contentType="text/html;UTF-8" import="java.util.*,java.io.*" %>
      This page directive imports the java.util and java.io packages. It also defines that the JSP file is saved in UTF-8 (the page encoding attribute) and that the response will contain Content-type header with the respective value.
      
    End of the code.
  • include

    The include directive is also executed at translation time. You use it to define resources to be included in your original JSP. These resources may be static ones, such as HTML or XML, or another JSP page. The syntax of the include directive is <%@ include file="relativeURL" %> .

    Note Note

    In contrast to the other JSP directives, the include directive may appear more than once and at any position in the JSP. The resulting JSP will contain all content and logic supplied by the original JSP and the included resources in the order they are supplied in the original JSP.

    End of the note.
  • taglib

    You use the taglib directive to import tag libraries into a JSP. The syntax of the taglib directive is <%@ taglib ( uri="tagLibraryURI" | tagdir="tagDir" ) prefix="tagPrefix" %>.

    Example Example

    1. To import JSTL [Page 79] tag libraries use:
      <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
      <%@ taglib uri="http://java.sun.com/jsp/jstl/xml" prefix="x"%>
      <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
      <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%>
      <%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
      
    End of the code.

    Taglib directives are not avaialble in JSP documents. You define custom tag libraries using the namespace declaration in the root tag.

    Example Example

    1. <jsp:root
      xmlns:c="http://java.sun.com/jsp/jstl/core"
      xmlns:jsp="http://java.sun.com/JSP/Page"
      version="2.1">
      …
      </jsp:root>
      
    End of the code.
  • tag

    The tag directive is similar to the page directive, but applies to tag files instead of JSP files. You could think of it as a tag descriptor in the TLD. In this directive you can define the tag’s body-content, description, small/large icon, display name, example, if the tag can accept dynamic attributes and other properties similarly to the page directive: isELIgnored, pageEncoding, deferredSyntaxAllowedAsLiteral, trimDirectiveWhitespaces, import, language.

    Example Example

    1. <%@ tag display-name="Addition"
      body-content="scriptless"
      dynamic-attributes="dyn"
      small-icon="/WEB-INF/sample-small.jpg"
      large-icon="/WEB-INF/sample-large.jpg"
      description="Sample usage of tag directive" %>
      
    End of the code.
  • attribute

    The attribute directive is analogous to the <attribute> element in the Tag Library Descriptor, and allows for the declaration of custom action attributes.

    Example Example

    1. <%@ attribute name="x" required="true" fragment="false"
      rtexprvalue="false" type="java.lang.Integer"
      description="The first operand" %>
      
    End of the code.
  • variable

    The variable directive is analogous to the <variable> element in the Tag Library Descriptor, and defines the details of a variable exposed by the tag handler to the calling page.

    Example Example

    1. <%@ variable name-given="sum"
      variable-class="java.lang.Integer"
      scope="NESTED"
      declare="true"
      description="The sum of the two operands" %>
      
    End of the code.