当前位置 : 主页 > 编程语言 > java >

复习整理1:jsp标准标签库jstl

来源:互联网 收集:自由互联 发布时间:2021-06-25
一:是什么: JSTL是apache对EL表达式的扩展,JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!

一:是什么:

JSTL是apache对EL表达式的扩展,JSTL是标签语言!JSTL标签使用以来非常方便,它与JSP动作标签一样,只不过它不是JSP内置的标签,需要我们自己导包,以及指定标签库而已!

二:为什么?有什么作用?

jsp主要用于显示业务逻辑代码处理以后的数据结果,不可避免的使用循环,布尔逻辑,数据格式转换等语句,使用jstl可以简化代码,便于管理,并且jstl可自定义标签,更加便捷

三:怎么用?

1:  导包

2:在jsp页面头部导入标签库。

 1 <!--核心标签-->
 2 <%@ taglib prefix="c" 
 3            uri="http://java.sun.com/jsp/jstl/core" %>
 4 <!--格式化标签-->
 5 <%@ taglib prefix="fmt" 
 6            uri="http://java.sun.com/jsp/jstl/fmt" %>
 7 <!--SQL标签-->
 8 <%@ taglib prefix="sql" 
 9            uri="http://java.sun.com/jsp/jstl/sql" %>
10 <!--XML标签-->
11 <%@ taglib prefix="x" 
12            uri="http://java.sun.com/jsp/jstl/xml" %>
13<!--jstl函数-->
14<%@ taglib prefix="fn"

15 uri="http://java.sun.com/jsp/jstl/functions" %>
 
 

3:使用标签

 1 <!--在pageContext中添加name为score value为${param.score }的数据-->
 2 <c:set var="score" value="${param.score }"/>
 3 <!--choose标签对应Java中的if/else if/else结构。when标签的test为true时,会执行这个when的内容。当所有when标签的test都为false时,会执行otherwise标签的内容。-->
 4 <c:choose>
 5     <c:when test="${score > 100 || score < 0}">错误的分数:${score }</c:when>
 6     <c:when test="${score >= 90 }">A级</c:when>
 7     <c:when test="${score >= 80 }">B级</c:when>
 8     <c:when test="${score >= 70 }">C级</c:when>
 9     <c:when test="${score >= 60 }">D级</c:when>
10     <c:otherwise>E级</c:otherwise>
11 </c:choose>

4:其他标签网上都有,很多,不在多说,应熟练掌握练习

四:灵活用---自定义标签

1:    新建标签处理类,继承自SimpleTagSupport类重写doTag()方法。

 1 public class IfTag extends SimpleTagSupport {
 2          //test为iftag标签的一个布尔类型的属性
 3     private boolean test;
 4         //提供相关方法
 5     public boolean isTest() {
 6         return test;
 7     }
 8     public void setTest(boolean test) {
 9         this.test = test;
10     }
11     @Override
12     public void doTag() throws JspException, IOException {
13         if(test) {
14             this.getJspBody().invoke(null);
15         }
16     }
17 }

2:在web项目的WEB-INF目录的lib目录下建立tld文件,这个tld文件为标签库的声明文件,并配置好相关信息。

 1 <tag> 
 2 <!--自定义的标签名字-->
 3         <name>if</name> 
 4 <!--类名-->
 5         <tag-class>cn.xxx.IfTag</tag-class> 
 6 
 7         <body-content>scriptless</body-content>
 8 
 9         <attribute>
10 <!--属性名-->
11             <name>test</name>
12 <!--是否必选-->
13             <required>true</required>
14 <!--是否支持EL表达式-->
15             <rtexprvalue>true</rtexprvalue>
16         </attribute> 
17     </tag>

3:引用自定义标签

1 <%
2     pageContext.setAttribute("one", true);
3     pageContext.setAttribute("two", false);
4 %>
5 <it:if test="${one }">xixi</it:if>
6 <it:if test="${two }">haha</it:if>
7 <it:if test="true">hehe</it:if>

 

11

网友评论