JSP/Servlet-----JSTL之core标签库
Core标签库又称核心标签库,该标签库的工作是对于JSP页面一般处理的封装(共14个),被分为四类:
1、多用途核心标签 |
<c:out> 用于在JSP中显示数据 <c:out value="" [default=""] [escapeXml=""] /> <c:out value="" [escapeXml=""]>default value</c:out>
value:需要显示出来的值 default:若value的值为null,则显示default的值 escapeXml:是否过滤为xml文档。true(过滤为xml文档,即输入什么显示什么)。false(不过滤为xml文档,即将其中的html、xml解析出来) 如<c:out value=“<a href=’xx’>aaa</a>” /> escapeXml=“true”显示<a href=’xx’>aaa</a> escapeXml=“false”显示aaa
例:<c:out value="${pageScope.name }" default="default value"></c:out> <c:out value="${pageScope.name }">default value</c:out> <c:out value="<a href=‘#‘>aaa</a>" escapeXml="false" /> |
<c:set> (1)、将value的值储存至范围为scope的varName变量中 <c:set var="" value="" [scope=""] /> <c:set var="" [scope=""]>this is value</c:set>
例:<c:set var="name" value="this is value" scope="page" /> <c:set var="name" scope="request">this is value</c:set>
(2)、将value的值储存至target对象的属性中 <c:set target="" property="" value=""/> <c:set target="" property="">this is value</c:set>
例:<jsp:useBean id="person" class="com.Person" scope="request"></jsp:useBean> <c:set target="${person}" property="name" value="123" /> <c:set target="${person}" property="name">123</c:set>
var:被赋值的变量名(可选) value:值的信息,可以是EL表达式或常量 scope:变量的作用范围(可选)(默认:page)。取值page、request、session、application property:JavaBean实例的变量属性名称(可选) target:被赋值的JavaBean实例的名称,若存在该属性则必须存在property属性(可选) |
<c:remove> 用于删除存在于scope中的变量 <c:remove var="" [scope=""] />
var:需要被删除的变量名 scope:变量的作用范围(可选)(默认:删除全部) |
<c:catch> 用来处理产生错误的异常状况,并将错误信息储存起来 <c:catch var="msg">……</c:catch>
var:用来储存错误信息的变量(可选),若无var属性的定义,那么仅仅捕捉异常而不做任何事情
<c:catch var="msg"> <% Integer.parseInt("111g"); %> </c:catch> ${msg } |
2、条件控制标签 |
<c:if> <c:if test="" [var=""] [scope=""]>如果为真显示的内容</c:if>
test:判断条件 var:保存判断结果true或false的变量(可选) scope:变量的作用域(可选)(默认:page)
例:<c:if test="${3>5}" var="isTrue">小于</c:if> <c:if test="${!isTrue}">大于 </c:if> |
<c:choose>、<c:when>、<c:otherwise> <c:choose>标签与java switch语句功能一样,switch中有case,<c:choose>中有<c:when>,switch中有default,<c:choose>中有<c:otherwise>
例:<c:choose> <c:when test="${student.name==‘nan‘}">男</c:when> <c:when test="${student.name==‘nv‘ }">女</c:when> <c:otherwise>其他</c:otherwise> </c:choose> |
3、循环控制标签 |
<c:forEach> <c:forEach [items=""] [var="list"] [varStatus=""] [begin=""] [end=""] [step=""]>循环体</c:forEach>
items:进行循环的集合(可选) var:做循环的对象变量名,若存在items属性,则表示循环集合中对象的变量名(可选) varStatus:显示循环状态的变量(可选) begin:定义遍历的开始位置,从0开始(可选)(默认:0) end:定义遍历的结束位置,从0开始(可选)(默认:集合个数-1) Step:循环的步长(可选)(默认:1)
例:<c:forEach items="${lists }" var="list" varStatus="s" begin="0" end="3" step="2"> <c:out value="${list }"></c:out> <c:out value="${s.count }"></c:out> <!-- 遍历次数:从1开始 --> <c:out value="${s.index}"></c:out> <!-- 下标:从0开始 --> <c:out value="${s.first}"></c:out> <!-- 如果是第一个元素则返回true否则返回false --> <c:out value="${s.last}"></c:out> <!-- 如果是最后一个元素则返回true否则返回false --> </c:forEach>
<c:forEach var="list" begin="1" end="10" [step="2"]>${list }</c:forEach> |
<c:forTokens> 根据某个分隔符分隔指定字符串,相当于java.util.StringTokenizer类 <c:forTokens items="" delims="" [var=""] [begin=""] [end=""] [step=""] [varStatus=""]>循环体</c:forTokens>
items:进行分隔的EL表达式或常量 delims:分隔符
<c:forTokens items="aa,bb,cc,dd" delims="," var="li"> ${li } </c:forTokens> |
4、URL相关标签 |
<c:import> 包含另一个JSP页面到本页面;相当于<jsp:include /> <c:import url="" [charEncoding=""] [context=""] [scope=""] [var=""] [varReader=""] />
url:需要导入页面的URL,可以是相对路径和绝对路径,还可以是其他主机资源 charEncoding:导入页面的字符集(默认:ISO-8859-1) context:导入其他Context下的页面,出现context属性时,必须以“/”开头,此时url属性也要以“/”开头(默认:当前应用程序。如/webDemo1) scope:var属性的作用域(默认:page) var:用于储存所引入的文本的变量(默认:print to page) varReader:用于提供java.io.Reader对象的变量,用于读取资源
例:
在同一Context下导入 <c:import url="/b.jsp" /> <c:import url="../c.jsp" />
在不同的Context下导入 在应用demo1的a.jsp中导入demo2应用根目录下的a.jsp <c:import url="/a.jsp" context="/demo2" /> 需把两个(demo1和demo2)两个应用在server.xml文件中进行配置: <Context path="/demo1" docBase="C:\demo1" crossContext="true" /> <Context path="/demo2" docBase="C:\demo2" crossContext="true" />
导入任一URL <c:import url="http://www.baidu.com" /> <c:import url="http://localhost:8080/webDemo/pages1/c.jsp" /> |
<c:url> 将URL格式化为一个字符串,然后储存在一个变量中。这个标签在需要的时候会自动重写URL。Var属性用于储存格式化后的URL 只是用于调用response.encodeURL()方法的一种可选的方法。它真正的优势在于提供了合适的URL编码,包括<c:param>中指定的参数 <c:url value="" [context=""] [scope=""] [var=""]/>
value:基础URL context:与<c:import>标签中的context一样(默认:当前应用程序)
例:<a href="<c:url value=‘next.jsp‘/>">next</a> |
<c:redirect> 用于页面重定向 <c:redirect url="" [context=""]/> |
<c:param> 用于在<c:url>、<c:redirect>等标签中指定参数,且与URL编码相关 <c:param name="" [value=""] /> |
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。