如要在JSP页面上有一个链接,Url值是通过参数输入的,用JSP标签的实现步骤(当然实际中不会用标签来完成这么简单的功能):
<一>.先从javax.servlet.jsp.tagext.BodyTagSupport派生一个新的类,并重载它的doStartTag()方法.如果是想要传入参数的话,则还要在Bean中加入想要的变量,如这里要传入一个url值,所以添加一个参数:linkUrl. 最后代码如下:
package com.moonsoft.jsptag;
import javax.servlet.jsp.tagext.BodyTagSupport;
import javax.servlet.jsp.JspTagException;
import javax.servlet.jsp.JspException;
public class UrlLinkTag extends BodyTagSupport {
private String linkUrl;
public UrlLinkTag() {
}
public String getLinkUrl() {
return linkUrl;
}
public void setLinkUrl(String linkUrl) {
this.linkUrl = linkUrl;
}
public int doStartTag() throws JspException{
try {
this.pageContext
.getOut().print("<a href=\'"+linkUrl+"\' >"+linkUrl+"</a>");
}
catch (Exception ex) {
ex.printStackTrace();
}
return 0;
}
}
<二>新建一个tld文件,内容如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
"http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd">
<taglib>
<tlibversion>1.0</tlibversion>
<jspversion>1.1</jspversion>
<shortname>buttons</shortname>
<uri>http://www.borland.com/jbuilder/internetbeans.tld</uri>
<info>
JSP tag extensions for InternetBeans Express
</info>
<tag>
<name>urllink</name>
<tagclass>com.moonsoft.jsptag.UrlLinkTag</tagclass>
<bodycontent>jsp</bodycontent>
<attribute>
<name>linkUrl</name>
<required>true</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
</tag>
</taglib>
<三>在web.xml中引入这个taglib,在其中加入:
<taglib>
<taglib-uri>/moon</taglib-uri>
<taglib-location>/WEB-INF/classes/com/moonsoft/jsptag/UrlLinkTag.tld</taglib-location>
</taglib>
<四>在jsp中引入这个标签
<%@ taglib uri="/moon" prefix="mylinkurl" %>
这里uri是和web.xml中配置的taglib-uri对应的,prefix值只是在本jsp页面作为标示用.
下面就可以在jsp中使用这个标签了:
<mylinkurl:urllink linkUrl="http://www.baidu.com" />
这里面的mylinkurl为在本jsp页面中设置的prefix值,urllink为tld文件中tag name,linkUrl为输入的参数
这样就在jsp页面上加入了一个:
<a href='http://www.baidu.com' >http://www.baidu.com</a>链接