"http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <tlib-version>1.0</tlib-version> <jsp-version>1.2</jsp-version> <short-name>mytag</short-name> <tag> <name>helloworld</name> <tag-class>mytag.HelloWorldTag</tag-class> <body-content>empty</body-content> </tag> </taglib> 3.4 编写标签实现类 < !—标签的实现类HelloWorldTag.class的源码 -- > package mytag; import java.io.IOException; import javax.servlet.jsp.*; import javax.servlet.jsp.tagext.*; public class HelloWorldTag extends TagSupport { public HelloWorldTag() { } public int doStartTag() throws JspTagException{ return EVAL_BODY_INCLUDE; } public int doEndTag() throws JspTagException{ try { pageContext.getOut().write("Hello World"); } catch (IOException ex) { throw new JspTagException("错误"); } return EVAL_PAGE; } } 3.5 执行效果 部署到Tomcat的WebApps目录下,启动Tomcat,输入:http://localhost:8080/myjsp/hello.jsp “Hello World”就是我们定义的标签部分的处理类输出的结果。 3.6 注意: 这个试验我做了2天,总是报错,弄得很是灰心,开始时以为tld文件或web.xml文件配置不正确,但怎么也找不到原因。 今晚我终于找到原因了,是因为.class文件一定要放在classes文件夹中,我放到了lib中。 .jar或servlet文件要放在lib目录中,而.class要放在classes目录中,如果要放到lib目录中,必须把mytag中的文件打包成.jar文件,然后把mytag.jar放到lib目录中。 希望你不要犯我犯过的这个错误!^_^ 有时间我会再写一篇介绍Struts详细处理流程的笔记。 这篇笔记整理的的确是JSP1.2的自定义标签,在JSP2.0中xml文件的格式变了,其他的就不太了解了!但我想变化应该不会太大,另外标准是向下兼容的,感兴趣的朋友可以看看,这是我的学习笔记,可能会对别人有些用处,所以贴出来献丑了! |