如何在JSP中使用相同的前缀创建多操作自定义标签

时间:2018-12-21 05:38:10

标签: java custom-tags

当我们使用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中添加另一个标签,例如: <prep:cube> ,以将三次数值打印输出到输入的数字,应该怎么做?

我可以在 message.tld 中加入这样的标签吗?

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

然后如何覆盖doTag()方法?还是在 Details.java 中创建另一个方法?

请帮助。
谢谢。

0 个答案:

没有答案