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标签使用问题求助的主要内容,如果未能解决你的问题,请参考以下文章

JSTL标签

Java jstl标签使用总结

java_jstl 标签库

10-Java-JSTL标签库的使用

JSTL——java标准标签库,java starand taglib

jsp之jstl核心标签库