今天下午去买了Logitech的光电专家新版键盘鼠标套装,感觉很不错,感谢勇明同学的推荐,所以连夜赶出这篇文章来回报他:)
上次提到同事提到了基本的技术问题我也没有回答上来,其实他的问题很简单:
<%@ taglib prefix="html" uri="http://jakarta.apache.org/struts/tags-html" %>
<%@ taglib prefix="bean" uri="http://jakarta.apache.org/struts/tags-bean" %>
<%@ taglib prefix="logic" uri="http://jakarta.apache.org/struts/tags-logic" %>
<%@ taglib prefix="nested" uri="http://jakarta.apache.org/struts/tags-nested" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jstl/core" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt" %>
我们在jsp页面中只是用http打头的uri去引用这些标签库,但是没有在web.xml中引用任何的dtd,那么系统去哪里知道这些标签是怎么定义的呢?我就一下子被问倒了,这个还真是个问题,当时我就觉得应该是在某个jar中,但是我们的lib下面的jar好像又没有这样的jar,这些怎么办?
我这个google的粉丝当然是要到google去寻找答案了,开始使用的关键字少,没有抓到要点,而且用中文,在中文站点中没有找到可以使用的文章,所以后来我用了“jsp taglib uri = http”,这时候找到了一篇文章http://faq.javaranch.com/view?JstlTagLibDefinitions,这里解释了jstl标签库的使用方法也是像我们最后两行那样做一个定义,而所有的东西都在jstl.jar standard.jar这两个jar中,我用winrar打开了这两个jar,发现路径下面果然有java/sun/com/jstl/core,原来这个uri的写法对应了java的路径,这样就搞清楚了,那么struts的标签也就在struts.jar里面了。这个问题就解决了,关键的问题还是没有好好的把这些技术细节搞清楚。
附录:使用tag标签的方法(转载来的文章片断)
要使用tag标签,JSP程序员必须做2件事:
· 声明此tag标签的tag库
· 实现此tag标签
声明tag标签所在的tag库
如果要使用tag标签,则应用JSP的taglib指示符来指定其tag库(注意:taglib要在在使用此tag标签之前声明)
<%@ taglib uri=”/WEB-INF/tutorial-template.tld” prefix=”tt” %>
uri属性定义了唯一的标签库描述(以下简称TLD),它可以是直接是tld文件名或一个独一无二的名字。prefix是用来区别其它TLD中和本TLD中有重名的tag的一种手段。
TLD必须以.tld作为扩展名,并且存放在当前应用的WEB-INF目录或其子目录下。你可以通过它的文件名直接引用它,也可以通过别的方式间接地引用它。
以下taglib指示符直接引用一个TLD:
<%@ taglib uri=”/WEB-INF/tutorial-template.tld” prefix=”tt” %>
以下的taglib指示符通过一个逻辑名称间接地引用一个TLD:
<%@ taglib uri=”/tutorial-template” prefix=”tt” %>
如果是间接引用TLD的话,那你必须还要在web.xml中定义此逻辑名称与tld文件之间的映射,具体做法是在web.xml中加入一个名为taglib的元素:
<taglib>
<taglib-uri>/tutorial-template</taglib-uri>
<taglib-location>
/WEB-INF/tutorial-template.tld
</taglib-location>
</taglib>
文章来源:
http://blog.donews.com/crabhn/archive/2006/02/20/735226.aspx