Как создать многофункциональный пользовательский тег, используя тот же префикс в JSP - PullRequest
0 голосов
/ 21 декабря 2018

Когда мы используем JSTL, мы импортируем его, используя<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>и импортировать несколько тегов, используя префикс c. Пример <c:out> <c:set> <c:remove>

Ну, вот моя простая реализация пользовательского тега для распечатки входного значения Details.java

public class Details extends SimpleTagSupport {

    StringWriter sw = new StringWriter();

    @Override
    public void doTag() throws JspException, IOException {

        getJspBody().invoke(sw);
        JspWriter out = getJspContext().getOut();
        out.println(sw.toString());
    }
}

message.tld

<taglib>
<tlib-version>1.0</tlib-version>
<jsp-version>2.0</jsp-version>
<short-name>My Custom Tag: MyMsg</short-name>
<tag>
<name>MyMsg</name>
<tag-class>beginnersbook.com.Details</tag-class>
<body-content>scriptless</body-content>
</tag>
</taglib>

Display.jsp

<%@ taglib prefix="prep" uri="WEB-INF/tlds/message.tld"%>
 <prep:MyMsg>Test Test</prep:MyMsg>

Так что, если бы я хотел сделать еще один тег с таким же префиксом prep ex: <prep:cube>, чтобы распечатать кубическое значение для введенного числа, как мне это сделать?

можно включитьтег, подобный этому message.tld ?

 <tag>
        <name>cube</name>
        <tag-class>com.tag.Details</tag-class>
        <body-content>scriptless</body-content>
 </tag>

Тогда как мне переопределить метод doTag()?Или я могу создать другой метод в Details.java ?

Пожалуйста, помогите.Спасибо.

...