LoginSignup
0
1

More than 3 years have passed since last update.

JSPカスタムタグを簡単に作る方法

Posted at

はじめに

今のところ、画面を作成する際に、jspをよく使われています。ある程度、JSPカスタムタグは必要になる場合もあります。
 本記事は簡単にJSPカスタムタグを作る方法を解説します。

概念解説

本記事はwebプロジェクトをベースにJSPカスタムタグを開発していきますよ。
また、少しだけ、JSPカスタムタグに関するの知識をまとめています。

  • SimpleTagSupportクラス: インタフェースSimpleTagを実現するクラスです。JSPカスタムタグを開発する際に、よく親のクラスとしての使われています。
  • doTag()メソッド : このメソッドをOverrideして実際の業務ロジックを実現する。
  • tldファイル: JSPカスタムタグのタグ名、タグ属性、タグクラスなどの情報を定義する場所。

本記事は<hyman:hello name="">というカスタムタグを作成します。
タグ名はhelloですし、タグの属性はnameです。
このタグを使うと、画面上にnameのvalueを含めて出力します。

作る方法

一、java側の実装

  簡単に言うと、新しいjavaクラスを作成して親のSimpleTagSupportクラスを継承し、doTagメソッドを実装します。
  ソースコードは下記の通りです。

HymanTag.java
package tag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;

public class HymanTag extends SimpleTagSupport {

    private String name;

    @Override
    public void doTag() throws JspException {
        try {
            getJspContext().getOut().println("Hello, " + name);
        } catch (Exception e) {
            throw new JspException(e);
        }
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
}

二、tldファイル作成

下記のように、タグの名、属性、クラスなどの情報を記入します。
その後、hyman.tldファイルを/webapps/WEB-INFディレクトリの下に格納します。
例:/webapps/WEB-INF/hyman.tld

hyman.tld
<?xml version="1.0" encoding="UTF-8" ?>
<taglib>
  <tlib-version>1.0</tlib-version>
  <jsp-version>2.0</jsp-version>
  <short-name>Example TLD</short-name>
  <tag>
    <name>hello</name>
    <tag-class>tag.HymanTag</tag-class>
    <body-content>empty</body-content>
    <info>Hello tag with parameters.</info>
    <attribute>
        <name>name</name>
        <required>true</required>
        <rtexprvalue>true</rtexprvalue>
     </attribute>
  </tag>
</taglib>

三、JSPカスタムタグ使用

前提:hyman.tldファイルを/webapps/WEB-INFディレクトリの下に格納します。
例:/webapps/WEB-INF/hyman.tld

先ずはjspファイルを作ってJSPカスタムタグを導入し、使います。
導入:

<%@ taglib prefix="hyman" uri="/WEB-INF/hyman.tld"%>

jspのソースコードは下記の通りです。

index.jsp
<%@page pageEncoding="UTF-8"%>
<%@ taglib prefix="hyman" uri="/WEB-INF/hyman.tld"%>
<html>
   <head>
       <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
       <title>JSPカスタムタグを簡単に作る方法</title>
   </head>
   <body>
      <h2 style="color:red;">
         <hyman:hello name="hyman's custom tag"/>
      </h2>
   </body>
</html>

四、JSPカスタムタグの表現

ここまで、JSPカスタムタグの実装はすべて完了しまして、プロジェクトを起動して画面上で確認しましょう。
イメージが以下のように表示されます。
image.png

最後に

最後まで読んでいただき、ありがとうございます。
おかしいと思う部分は遠慮なくご指摘いただければと思います。
よろしくお願いします。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1