суббота, 18 июня 2011 г.

Добавление скиптовых переменных из JSP тэгов

Из тегов можно добавлять в контекст страницы переменные, которые могут использовать скриптлеты и выразжения на странице. Чтобы добавить такую переменную нам необходимо об этом упомнить в дескрипторе библиотеки тегов в том теге, которые и будет добавлять эту пременную:
...
<tag> 
  <name>secondtag</name> 
  <tagclass>com.stardeveloper.tag.test.SecondTag</tagclass>
  <tei-class>com.stardeveloper.tag.test.SecondTagTEI</tei-class>
  <bodycontent>JSP</bodycontent>
  <info>Your second JSP Tag</info>
</tag>
... 
Тэг что нас интересует это <tei-class>, который означает: класс TagExtraInfo. В теге указывается путь к классу, который и опишет, что он добавляется и когда оно станет доступным:
package com.stardeveloper.tag.test;

import javax.servlet.jsp.tagext.*;

public class SecondTagTEI extends TagExtraInfo {

 public VariableInfo[] getVariableInfo(TagData data) {
  return new VariableInfo[] {
   new VariableInfo("time", "java.lang.String", 
    true, VariableInfo.NESTED)
  };
 }
}

Это означает, что между открывающим и закрывающим тегами(VariableInfo.NESTED) можно использовать переменную строкового типа time. Ну примерно так:
<%@ taglib uri="/WEB-INF/tlds/DemoTags.tld" prefix="star" %>
<star:secondtag>
 <p align="center">Date value retrieved from JSP Tag : 
  <%= time %></p>
</star:secondtag>

А вообще для определения места использования установленных в теге переменных выделенно три константы:
  • VariableInfo.AT_BEGIN Переменная доступна после открывающего тега.
  • VariableInfo.AT_END Переменная доступна после закрывающего тега.
  • VariableInfo.NESTED Переменная доступна в теле тега(между открывающим и закрывающим тегами).
.

Комментариев нет:

Отправить комментарий