Элементы action для JSP

Элемент jsp:attribute позволяет определить значение атрибута тега в теле XML-элемента, а не через значение атрибута стандартного или пользовательского тега:

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

<HTML>

<mytag:hello>

<jsp:attribute name="firstname">

Bender

</jsp:attribute>

</mytag:hello>

</HTML>

в браузер будет выведено:

Hello, Bender

Если в теле тега имеются элементы jsp:attribute, то тело тега нужно указать явно при помощи стандартного действия jsp:body:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"

prefix="c"%>

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

<HTML>

<jsp:useBean id="rw" scope="request"

class="test.my.MySet"/>

<mytag:bodyattr>

<jsp:attribute name="num">

<c:out value="${requestScope.rw.size}"/>

</jsp:attribute>

<jsp:body>

<c:out value="${requestScope.rw.element}"/>

</jsp:body>

</mytag:bodyattr>

</HTML>

В результате в браузер будет выведено:

IBM

Sun

Microsoft

Элемент jsp:element с обязательным атрибутом name используется для динамического определения элемента XML и дополнительно может содержать действия jsp:attribute и jsp:body:

<jsp:element name="H2" >

<jsp:attribute name="Style">

color:red

</jsp:attribute>

<jsp:body>

Simple Text

</jsp:body>

</jsp:element>

в результате должно быть сгенерировано:

<H2 Style="color:red">Simple Text</H2>

Стандартные действия jsp:doBody и jsp:invoke используются только
в тег-файлах. Тег jsp:doBody вызывает тело тега, выводя результат в JspWriter или в атрибут области видимости. Действие jsp:invoke подобно действию jsp:doBody и используется для вызова атрибута-фрагмента. Например, поведение тега bodyattr можно воспроизвести так:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core"

prefix="c"%>

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

<tags:actiondemo>

<jsp:attribute name="num">

<c:out value="${sessionScope.mysetInstance.size}"/>

</jsp:attribute>

<jsp:body>

<c:out value="${sessionScope.mysetInstance.element}"/>

</jsp:body>

</tags:actiondemo>

Файл actiondemo.tag помещен в каталог /WEB-INF/tags:

<%@ tag import="test.my.MySet" %>

<%@ attribute name="num" fragment="true" %>

<%@ variable name-given="mysetInstance" %>

<%session.setAttribute("mysetInstance", new MySet());%>

<TABLE border=1>

<TR><TD>Rows number: <jsp:invoke fragment="num"</TD></TR>

<TR><TD><jsp:doBody /></TD></TR>

<TR><TD><jsp:doBody /></TD></TR>

<TR><TD><jsp:doBody /></TD></TR>

</TABLE>

Здесь директива tag схожа с директивой page для страниц JSP. Директива attribute декларирует атрибут тега actiondemo, и если fragment="true", то этот атрибут можно использовать совместно с jsp:invoke. Директива variable – для передачи переменной обратно в вызывающую JSP-страницу.

В браузер будет выведено:

Rows number: 3

IBM

Sun

Microsoft

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100