我们经常会在写程序中用到自定义TAG。对于一些初学者在学习中就会有一些问题,这里我们先说下uri的路径问题。 很多朋友认为这里是写路径的,可是如果你有了一定的经验后就会发现,这里的URI事实上就是个标示符,更直白的说就是在JSP文件中调用时在uri处的值,根本没有什么路径上的相对与绝对之说! 下面做个小例子: 新建java文件Mytags.java,内容如下: -------------------------- package mytag.lib.com; import java.io.IOException; import javax.servlet.jsp.JspException; public class Mytags extends SimpleTagSupport { } -------------------------- 在WEB-INF下新建tld文件mytaglibs.tld,内容如下: -------------------------- <?xml version="1.0" encoding="utf-8" ?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" -------------------------- 在WebContent下新建testTag.jsp,内容如下: -------------------------- <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> mytab: -------------------------- 好了,我们注意下红色的部分,url的设置(tld中)与调用(jsp中)只是写的一至即可。当然你可以试试。 有人可能会要在web.xml中配置,不过你在tld中写了url是不用在web.xml中配置了,当然写上也没错,而且web.xml中的uri可以与tld中的不相同,这样两种在JSP中可以随便调用哪个都行的。但最好不要这样做,以后你就会知道了。 不过有人会说有500的错误,那是因为你的tld文件放错了地方,tld文件要放到WEB-INF下,还要注意的是,修改完了最好重启服务,再试。 总之:uri只是个标示符。 (上面代码亲试,1、<uri>/M</uri> ; uri="/M" 2、<uri>M</uri>; uri="M"都是可以的;就算是写成http://..这样的也同样。) 转载请保留作者谢谢: |
jsp 自定义taglib的uri问题透析(新手级)
最新推荐文章于 2022-08-01 09:27:14 发布