java中jstl标签使用问题求助
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中jstl标签使用问题求助相关的知识,希望对你有一定的参考价值。
我使用的:
jstl 1.1版本的
web。xml是2.3
jdk1.4
weblogic 8.16
jsp 2.0
serviet 2.4
配置如下 :
<taglib>
<taglib-uri>/fn.tld</taglib-uri>
<taglib-location>/WEB-INF/fn.tld</taglib-location>
</taglib>
//fn标签已经放到web-inf下
<%@ taglib prefix="fn" uri="/fn.tld" %>
//我在做项目的第三期 此项目用到jstl标签 我只是添加fn标签写法
web。xml中写过 c fmt 都正常
我添加fn jsp页面报错
odps/odpConstants.jsp(8): Error in using tag library uri='/fn.tld' prefix='fn': Tag Library Descriptor contains no Tag descriptions
probably occurred due to an error in /odps/odpConstants.jsp line 8:
<%@ taglib uri= "/fn.tld" prefix= "fn" %>
后台错误:
1 .<2009-4-13 上午10时56分48秒 CST> <Warning> <HTTP> <BEA-101248> <[ServletContext
id=26620531,name=odpweb,context-path=/)]: Deployment descriptor "jar:file:D:\be
816\user_projects\domains\odpdomain\.\myserver\.wlnotdelete\extract\myserver_od
web_odpweb\jarfiles\WEB-INF\lib\standard.jar!/META-INF/fn.tld" is malformed. Ch
ck against the DTD: cvc-elt.1: Cannot find the declaration of element 'taglib'.
(line 6, column 17).>
2.
=26620531,name=odpweb,context-path=/odp)] Servlet failed with Exception
weblogic.servlet.jsp.JspException: (line 8): Error in using tag library uri='/fn
.tld' prefix='fn': Tag Library Descriptor contains no Tag descriptions
at weblogic.servlet.jsp.StandardTagLib.tld_jspException(StandardTagLib.j
ava:1243)
at weblogic.servlet.jsp.StandardTagLib.parseDD(StandardTagLib.java:1267)
<taglib-location>/WEB-INF/fn.tld</taglib-location> 这里的/WEB-INF/fn.tld没有写错吧? 或者有没有fn.tld这个文件?提示这个tld文件有问题啊,问题很有可能出在这。
总结一下有几点可能:
1.fn.tld中tagclass有没有配好或者路径有没有弄错。
2.web.xml中<taglib-location>有没有配错tld文件,路径也看看。
3.配完了web.xml重启一下容器!
你再认真找找吧! 参考技术A 你页面中的uri不对正确,如果你是用的是tomcat那么你可以看看它为你提供的
例子,看看他是怎么使用的。在tomcat\webapps\example里
Error in using tag library uri='/fn
.tld' prefix='fn': Tag Library Descriptor contains no Tag descriptions
这是最关键的错误信息
Deployment descriptor "jar:file:D:\be
816\user_projects\domains\odpdomain\.\myserver\.wlnotdelete\extract\myserver_od
web_odpweb\jarfiles\WEB-INF\lib\standard.jar!/META-INF/fn.tld" is malformed. Ch
ck against the DTD: cvc-elt.1: Cannot find the declaration of element 'taglib'
还有这里是说在你的提供的这个standard.jar中的META-INF中的fn.tld文件
存在问题,并不应该存在taglib标记对
Java jstl标签使用总结
1.在jsp文件中引用
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
2.jstl常用标签的使用
1)choose
相当于switch
<body> <% Rat rat=new Rat(); rat.setName("Cally"); rat.setAge(10); request.setAttribute("rat1", rat); %> <c:choose> <c:when test="${rat1.age==7 }"> 老鼠年纪为7 </c:when> <c:when test="${rat1.age==8 }"> 老鼠年纪为8 </c:when> <c:when test="${rat1.age==10 }"> 老鼠年纪为10 </c:when> </c:choose> </body>
forEach
<% Map map=new HashMap(); map.put("aa", "宝玉"); map.put("cc", "黛玉"); request.setAttribute("persons", map); %> <c:forEach items="${persons }" var="per"> key=${per.key } value=${per.value} </c:forEach>
if
<body> <% request.setAttribute("a", "hello"); Rat rat=new Rat(); rat.setName("小宝"); rat.setAge(5); request.setAttribute("rat1", rat); %> <c:if test="${a==‘hello‘ }"> ok! </c:if> <c:if test="${a!=‘hello‘ }"> no ok! </c:if> <c:if test="${rat1.age>3 }"> 老鼠年纪大于3岁 </c:if> </body>
out
<!-- 同时出现多个域对象,pageContext的优先级最高 pageContext=>request=>session=>application --> <% //request.setAttribute("abc", "<a href=‘http://www.baidu.com‘>百度</a>"); //session.setAttribute("abc", "你好1"); //application.setAttribute("abc", "你好2"); //pageContext.setAttribute("abc", "你好3"); //将user初始化后,当做域对象 User user=new User(); user.setName("Cally"); user.setAge(30); request.setAttribute("user1", user); %> <!-- escapXml 用于指定是否按照html样式显示,默认true,表示文本,false为html格式 --> <c:out value="${abc}" escapeXml="false"></c:out> <!-- 将user1对象中的值取出来,调用了对象的get方法 --> <c:out value="${ user1.age}"></c:out> </body>
set
<body> <!-- 等价于 request.setAttrbute("abc","中国,北京"); --> <c:set var="abc" value="中国,北京" scope="request"></c:set> <c:out value="${abc} "></c:out> <c:remove var="abc"/> <c:out value="${abc}" default="没有了"></c:out> </body>
以上是关于java中jstl标签使用问题求助的主要内容,如果未能解决你的问题,请参考以下文章