Написание пользовательских функций на JSTL

Я использую jstl C:forEach для печати таблицы в jsp. Я подтверждаю это как,

         <c:choose>
          <c:when test="${varName eq condition}">
             <c:out value="${fn:substring(varName, 0, 3)}
          </c:when>
          <c:otherwise>
            ${varName}
          </c:otherwise>
         </c:choose>

так что это печатает результат по мере необходимости, и у меня есть сценарий, чтобы использовать то же самое для других полей на той же странице, а также на других страницах.

Есть ли способ повторно использовать коды jstl, передав ему параметр. Что-то, что мы делаем для методов в Java (напишите в классе и получите доступ к нему везде, где это необходимо)?

Заранее спасибо за ценные ответы и комментарии?


person Santhosh    schedule 29.11.2014    source источник


Ответы (1)


Вы можете определить свои собственные теги JSP. В JSP 2.0 можно использовать файлы тегов JSP, которые синтаксис очень похож на страницы JSP.

Создайте подкаталог в каталоге WEB-INF: /WEB-INF/tags/mytaglib

В этом каталоге создайте файл displayVarName.tag:

<%@ tag body-content="empty" %> 
<%@ taglib prefix="c"   uri="http://java.sun.com/jsp/jstl/core" %> 
<%@ taglib prefix="fn"  uri="http://java.sun.com/jsp/jstl/functions"%>

<%@ attribute name="varName"    rtexprvalue="true"  required="true" type="java.lang.String"  description="Description of varName" %> 
<%@ attribute name="condition"  rtexprvalue="true"  required="true" type="java.lang.String"  description="Description of condition" %> 

<c:choose>
   <c:when test="${varName eq condition}">
      <c:out value="${fn:substring(varName, 0, 3)}
   </c:when>
   <c:otherwise>
      ${varName}
   </c:otherwise>
</c:choose>

Теперь вы можете импортировать свой тег и использовать его на своей странице JSP, используя:

<%@taglib prefix="mytaglib"   tagdir="/WEB-INF/tags/mytaglib"%>

<mytaglib:displayVarName varName=${varName} condition=${condition} />
person obourgain    schedule 01.12.2014
comment
Спасибо :) это сработало, как и ожидалось. Не могли бы вы указать на различия между файлами tag и файлами .tld . Любые ссылки будут очень полезны - person Santhosh; 02.12.2014
comment
Вы используете файл .tld при разработке пользовательских тегов в java. Для этого в сети есть несколько руководств, например tutorialspoint.com/jsp/jsp_custom_tags.htm< /а>. - person obourgain; 03.12.2014