如要在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"
" <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="
這里面的mylinkurl為在本jsp頁面中設置的prefix值,urllink為tld文件中tag name,linkUrl為輸入的參數
這樣就在jsp頁面上加入了一個:
<a >http://www.baidu.com</a>鏈接