Зміст
У цій статті мова піде про створення 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 тег з динамічними атрибутами | > |