воскресенье, 19 июня 2011 г.

Группа тегов jsp:element

Начнем с примера:

<jsp:element name="${content.headerName}" 
   xmlns:jsp="http://java.sun.com/JSP/Page"> 
   <jsp:attribute name="lang">${content.lang}</jsp:attribute> 
   <jsp:body>${content.body}</jsp:body> 
</jsp:element>

Эта группа тегов динамически генерирует элемент иксемель.



Тег jsp:attribute применим не только в теле тега jsp:element, он также применяется в других тегах, которым нужно получить динамическое значение атрибута, например из какого-нибудь тега, а поскольку тег применять в теле атрибута нельзя, то нам тут и пригодится jsp:attribute, потому что тег применим в теле другого тега.

Пример. Вызов в JSP:
... 
<jsp:useBean id="foo" class="jsp2.examples.FooBean">
    Bean created!  Setting foo.bar...<br>
    <jsp:setProperty name="foo" property="bar">
        <jsp:attribute name="value">
            <my:helloWorld/>
        </jsp:attribute>
    </jsp:setProperty>
</jsp:useBean>
<br>
Result: ${foo.bar}
... 

Определение тега helloWorld:
package jsp2.examples.simpletag;

import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;

/**
 * SimpleTag handler that prints "Hello, world!"
 */
public class HelloWorldSimpleTag extends SimpleTagSupport {
    public void doTag() throws JspException, IOException {
 getJspContext().getOut().write( "Hello, world!" );
    }
}

Опредление бина:
package jsp2.examples;

public class FooBean {
    private String bar;
    
    public FooBean() {
        bar = "Initial value";
    }
    
    public String getBar() {
        return this.bar;
    }
    
    public void setBar(String bar) {
        this.bar = bar;
    }
    
}

А вот результат, который мы увидим в браузере:
Bean created! Setting foo.bar...

Result: Hello, world!

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

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