为了完全在JSP中消除Java代码,学习JAVA的标签库:
Java标签库:
1:自定义标签库.
2:标准标签库(JSTL).(SUN预先提供好的,我们使用的)
以后学习MVC框架(Struts/Struts2/SpringMVC)的时候,都会学习一些标签.
准备:
1:准备JSTL相关的jar(Tomcat根/webapps/example/WEB-INF/lib).
jstl.jar
standard.jar
el-api.jar
jsp-api.jar
2:使用JSPL的JSP页面中,引入标签库:
比如引入核心JSTL:
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
JSTL主要提供了5大类标签库:
1:核心标签库:为日常任务提供通用支持,如显示和设置变量,测试条件以及其他操作(如导入和重定向web页面等)
2:国际化(I18N)标签库,支持多种语言的引用程序
3:SQL标签库:对访问和修改数据库提供标准化支持.
4:XML标签库:对XML文件处理和操作系统提供支持,包括XML节点解析,迭代,基于XML数据的条件评估,以及可扩展式语言转换(Extensible Style language Transformations ,XSLT)的执行.
5:函数标签库:通过在EL表达式中调用函数标签库中的函数来实现特定的操作,例如:
${fn:contains(string.substring)}.其功能是判断string字符串是否包含substring字符串.
JSTL标签库的使用方法:
图片1.pngJSTL核心常用的标签:
1):逻辑判断(条件选择)标签(if-elseif-else):
单条件判断:if标签:
语法1:没有本体内容(body):把表达式的结果赋值给变量,并存储在指定的作用域中.
<c:if test="boolean表达式" var="varName" [scope="{page|request|session|application}"]/>
语法2:有本体内容,若表达式为true,则显示之间的文本内容.
<c:if test="boolean表达式" >
本体内容
</c:if>
多条件判断:choose标签:
<c:choose>
<c:when test="${pro.dir_id == 1}">鼠标</c:when>
<c:when test="${pro.dir_id == 2}">有线鼠标</c:when>
<c:when test="${pro.dir_id == 3}">无线鼠标</c:when>
<c:when test="${pro.dir_id == 4}">游戏鼠标</c:when>
<c:otherwise>鼠标</c:otherwise>
</c:choose>
2):循环迭代标签(foreach):
语法1:迭代一集合对象
<c:forEach [var="varName"] items="collection" [varStatus="varStatusName"]>
本体内容
</c:forEach>
//示例代码
/*
需求1:迭代出集合中所有元素.
底层:会把每一个跌大帝的元素,存放到pageContext作用域中.
pageContext.setAttribute("e",每一个迭代的元素值);
*/
<%
pageContext.setAttribute("args",Arrays.asList("A","B","C","D"));
%>
<c:forEach items="${arrs}" var="e" varStatus="vs">
<br/>
${vs.count}--${e}
</c:forEach>
语法2:迭代指定的次数
<c:forEach [var="varName"] [varStatus="varStatusName"] begin="begin" end="end" [step="step"]>
本体内容
</c:forEach>
/*
需求2:输出11到20
*/
<c:forEach begin="11" end="20" var="num" setp="1">
${num}
</c:forEach>
时间格式化标签
<%@ page language="java" contentType="text/html;charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%
pageContext.setAttribute("data",new java.util.Date());
%>
${data}<br/>
<fmt:formatDate value="$"date" pattern="yyyy-MM-dd HH:mm:ss"/>
网友评论