Содержание
В этой статье речь пойдет о создании JSTL тега со статическими атрибутами. О динамических атрибутах будет рассказано в следующей статье.
Итак, чтобы создать JSTL тег со статическим атрибутом, необходимо в описании тега добавить атрибут attribute и добавить сеттер в класс, описывающий тег.
То есть, TDL-файл будет выглядеть следующим образом (customattrTag.tld):
<?xml version="1.0" encoding="UTF-8"?>
<taglib version="2.1" xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee web-jsptaglibrary_2_1.xsd">
<tlib-version>1.0</tlib-version>
<short-name>seostella</short-name>
<uri>/WEB-INF/customattrTag</uri>
<tag>
<name>customattr</name>
<tag-class>com.seostella.jstl.CustomAttrTag</tag-class>
<body-content>empty</body-content>
<info>CustomAttrTag displayes value specified in value attribute</info>
<attribute>
<name>myValue</name>
<required>true</required>
<description>Provide a value</description>
<rtexprvalue>false</rtexprvalue>
</attribute>
</tag>
</taglib>
Основные параметры тега attribute:
<name>myValue</name>
- имя атрибута.
<required>true</required>
- true если атрибут обязателен, false - если не обязателен.
<description>Provide a value</description>
- описание атрибута.
В классе обработки тега (в нашем случае com.seostella.jstl.CustomAttrTag) необходимо добавить сеттер setMyValue() из-за того, что атрибут называется myValue:
package com.seostella.jstl;
import java.io.IOException;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.TagSupport;
public class CustomAttrTag extends TagSupport{
private static final long serialVersionUID = 1L;
private String myValue;
public void setMyValue(String value) {
this.myValue = value;
}
@Override
public int doStartTag() throws JspException {
try {
pageContext.getOut().print( this.myValue );
} catch(IOException ioException) {
throw new JspException("Error: " + ioException.getMessage());
}
return SKIP_BODY;
}
}
Пример использования тега customattr:
<%@ taglib uri="/WEB-INF/customattrTag.tld" prefix="seostella"%>
<%@ page session="false" pageEncoding="UTF-8"%>
<html>
<head>
<title>CustomAttrTag</title>
</head>
<body>
<h1>CustomAttrTag</h1>
<p><seostella:customattr myValue="My Value"/><p>
</body>
</html>
Скачать проект, демонстрирующий работу этого тега Вы можете по следующей ссылке - Скачать customattrtag.zip
В следующей статье рассмотрим создание тега с динамическими атрибутами.
< | Как создать JSTL тег | Как создать JSTL тег с динамическими атрибутами | > |