1.
自定义标签主要用于移除Jsp页面中的java代码,EL方法也有移除JSP中java代码的功能,但不能替代,因为
EL方法并不能适用于所有java代码,如:request.getParameter("haha");
2. 要使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤:
第一步. 编写一个实现Tag接口的java类,把页面java代码移到这个java类中(标签处理器类)
实例代码:
public class ViewIPTag extends TagSupport {
tld文件的编写:a. 样板文件路径:\tomcat7\webapps\examples\WEB-INF\jsp2下的jsp2-example-taglib.tld
b, 抄头 / 抄尾
2. 要使用自定义标签移除jsp页面中的java代码,只需要完成以下两个步骤:
第一步. 编写一个实现Tag接口的java类,把页面java代码移到这个java类中(标签处理器类)
实例代码:
public class ViewIPTag extends TagSupport {
public int
doStartTag() throws JspException {
HttpServletRequest request=(HttpServletRequest) this.pageContext.getRequest();
JspWriter out=this.pageContext.getOut();
String ip=request.getRemoteAddr();
try {
out.print(ip);
} catch (IOException e) {
throw new RuntimeException(e);
}
return super.doStartTag();
}
}
第
二
步
. 编写标签库描述符(tld)文件,在tld文件中把标签处理器类描述成一个标签。
文件放于WEB-INF中
tld文件的编写:a. 样板文件路径:\tomcat7\webapps\examples\WEB-INF\jsp2下的jsp2-example-taglib.tld
b, 抄头 / 抄尾
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>A tag library exercising SimpleTag handlers.</description>
<tlib-version>1.0</tlib-version>
<short-name>SimpleTagLibrary</short-name>
<uri>
绑定到URI中</uri> //如:<uri>
http://www.itcast.cn</uri>
<tag>
<name>
定义名称</name> //如:
<name>
viewIP
</name>
<tag-class>
需配置的类及完整路径</tag-class> //如:
<tag-class>
cn.itcast.web.tag.ViewIPTag
</tag-class>
<body-content>empty</body-content>
/
/是否有标签体,若有传统标签标签体可用大写JSP,但SimpleTag标签标签体要用scriptless,此处标签体,jsp中标签对内内容。
</tag>
抄尾
</taglib>
第三步:自定义标签的使用
导入 :<%@taglib uri=" 绑定到URI中 " prefix="最好是tld文件名" %> //如: <%@taglib uri=" http://www.itcast.cn " prefix="itcast" %>
抄尾
</taglib>
第三步:自定义标签的使用
导入 :<%@taglib uri=" 绑定到URI中 " prefix="最好是tld文件名" %> //如: <%@taglib uri=" http://www.itcast.cn " prefix="itcast" %>
使用:<
最好是tld文件名:
定义名称/
> //如:
<
itcast
:
viewIP/
>