我想创建自己的标签,例如
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:out value="helloWorld" />
<c:forEach var="song" items="${applicationScope.songs}">
<c:out value="song" />
</c:forEach>
你能给出一个Hello World示例来创建自定义标签吗?
答案 0 :(得分:1)
当然没问题..
首先创建一个.tld文件并将其放在 WEB-INF 目录或 WEB-INF 目录下的目录中,让我们将其命名为mytags.tld。
文件的内容:
<?xml version="1.0" encoding="UTF-8" ?>
<taglib xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"
version="2.0">
<description>My Tags.. My Own Tags..</description>
<display-name>My Tags Display Name Here.</display-name>
<tlib-version>1</tlib-version>
<short-name>mytags</short-name>
<uri>http://koraytugay.com/mytags</uri>
<tag>
<description>Some random tag by me</description>
<name>myFirstTag</name>
<tag-class>com.tugay.julyten.MyTagClass</tag-class>
<body-content>empty</body-content>
</tag>
</taglib>
这里最重要的元素是 uri 以及标记元素中的所有内容我猜...
部署应用程序时,容器将查找.tld文件,因此您无需将其放在web.xml或其他任何内容中。 (这对JSP 2.0及更高版本有效。)
好了,现在让我们在com.tugay.julyten包中创建MyTagClass.java
package com.tugay.julyten;
import javax.servlet.jsp.JspException;
import javax.servlet.jsp.tagext.SimpleTagSupport;
import java.io.IOException;
public class MyTagClass extends SimpleTagSupport {
@Override
public void doTag() throws JspException, IOException {
getJspContext().getOut().write("You are awesome man! Awesome!!!");
}
}
请注意,我们的类扩展了SimpleTagSupport,并且我们已经覆盖了方法doTag()并实现了它。终于可以在我们的jsp文件中使用它了:
<%@ taglib prefix="mine" uri="http://koraytugay.com/mytags" %>
<mine:myFirstTag />
你去吧。当你点击jsp文件时,你会看到:
You are awesome man! Awesome!!!
希望这可以帮助您开始使用自定义标签..