Когда мы используем 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 ?
Пожалуйста, помогите.Спасибо.