web.xml:
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
*.jsp:
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>这两个一对比就知道<taglib-uri>的作用了,是指出tld文件的网络地址
web.xml:
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
*.jsp:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
<taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
*.jsp:
<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>这两个一对比就知道<taglib-uri>的作用了,是指出tld文件的网络地址
web.xml:
<taglib-uri>http://java.sun.com/jstl/core</taglib-uri>
*.jsp:
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
解决方案 »
- spring注入报错,请各位大侠帮忙看看 ,能不能帮小弟解决,小弟非常感谢!
- 获得远程ip
- 关于spring bean 作用范围
- ssh结构下如果在一个普通类里获得hibernate的session
- Java PetStore 出现问题,ant run后硬盘在闪,但一小时都没有反应
- xinde() ()请进来领分!
- 如何用java向sqlserver中存入大文件
- 请高手指教一个JLabel的问题
- java开发soap rpc遇到的问题,请指点!
- 关于mybatis的collection嵌套结果的问题。
- Class 'org.springframework.orm.hibernate3.LocalSessionFactoryBean' not found
- hibernate的致命缺点有哪些,各位大虾都来抒发一下自己使用的感想吧?
中的是<taglib-uri>/tags/struts-html</taglib-uri>
并非 <taglib-uri>/WEB-INF/struts-html.tld</taglib-uri>
这个样子啊/tags/struts-html 这个东西在哪里啊?
可以不用在web.xml配置,直接用默认的
<%@ taglib uri="http://jakarta.apache.org/struts/tags-bean" prefix="bean" %>
或者
<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c" %>
uri--》先得明白这个如果在web-inf/下面存在.tld文件,如果你熟悉自定tag,那么就应该明白,
那么就可以在web.xml里面定义tag的uri
然后在页面里面引用
比如:
<taglib>
<taglib-uri>/tags/struts-html</taglib-uri>
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
</taglib>那么,在/web-inf/下面则存在struts-html.tld
在jsp页面通过下面导入:<%@ taglib uri="/tags/struts-html" prefix="html" %>解析的时候,会通过tag的uri在web.xml里面找到对应的tld文件
画面 :<%@ taglib uri="/tags/struts-html" prefix="html" %>
到 web.xml中去找到 <taglib-uri>/tags/struts-html</taglib-uri>
然后由 <taglib-location>/WEB-INF/struts-html.tld</taglib-location>
去找到对应的tld文件,最后由tld文件找到jar包中的类文件
???
这个是引用名字
<taglib-location>/WEB-INF/struts-html.tld</taglib-location>
这个指出对应的tld文件位置
<%@ taglib uri="/tags/struts-html" prefix="html" %>
这个指出JSP页面中前缀是html的标签将由<taglib-uri>/tags/struts-html</taglib-uri>这个对应的tld文件里的标签配置处理类来处理此类标签!先看看JSP自定义标签的使用吧
JSP自定义标签的原理知道,就好说了
标签有几部分:java文件,tld, 页面引用
一个标签对应一个java文件比如<html:text>它就会对应一个TextTag(我猜的)的java类
而tld就是为了定义哪个标签对应哪个java类
你说的uri="" 就是为了找到这个tld文件
下面反过来推一下:
当你在jsp中写了一个<html:text>时,编译器就蒙不,这是个什么东东?它就会找有没有<%@taglib uri> 前缀是html的,如果有就通过uri找到tld文件,再看看tld文件中text标签对应哪个java类,最后执行java类,就执行了你的标签。
你可以反编译标签库那些类,看看人家是怎么写的,你完全可以自己写一个一样的。