我想创建自己的标签,例如
<%@ 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 示例?
我想创建自己的标签,例如
<%@ 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 示例?
好没问题..
首先创建一个.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!!!
希望这可以帮助您开始使用自定义标签..