天天看点

Sun JSTL 常用几个核心库标签

首先导入标签库,这个在jsp文件htnl标签前面使用下面指令就可以了。

<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

Uri指向jstl 里面的jar包中的 META-INF中的 c.tld文件中绑定的uri。Prefix默认使用和tld文件同名。

Sun JSTL 常用几个核心库标签

1.

<c:catch>  这个标签通常使用来捕获在jsp中的异常。Catch标签有几个属性。

<name>var</name>

 <required>false</required>

<rtexprvalue>false</rtexprvalue>

其中name属性指定一个标签属性,required指明标签属性是不是必须,rtexprvalue指定是不是可以使用el表达式获取变量值,下面所有标签的这些属性都是一样的功能。

如下面代码所示。

<c:catch var="e">

<%

 int x=1/0;

%>

</c:catch>

${e}

Var定义的e 指向异常对象。Catch中的执行如果出现异常,就会捕获,上面用一个el表达式输出异常。显示效果如下。

2.

<c:if></c:if> 一个if标签,主要用来根据一些条件来确定是否输出if标签中的标签体。

If标签的属性test

是一个boolean值,<required><rtexprvalue>的值都为true,就是说test属性是必须,并且可以使用el表达式获取。

<c:if test="${b}" scope="page" var="result">

this is true

${result}

</c:if>

上面的简单的写了if标签使用,${b}是使用el表达式获取b的值,其中b是一个boolean值,scope表示var保存域。Var中的值用来保存if结果。值为true 或者false。

3. forEach标签 主要来循环执行标签体。可以迭代map或者list还有数组。<c:forEach></c:forEach> 

下面一个简单代码

Items属性用于获取迭代对象,可以使用el表达式获取。 Var表示每次迭代的变量。在下面代码中就是数组中的值。还有一个varStatus,用于记住每次迭代的对象,(这里记住是对象)可以获取迭代的一些参数。

Begin end setp 三个属性结合一起使用。Begin代表开始的位置,end表示结束位置,step表示步长,

<%

int[] nums=new int[]{1,2,3,6,8};

pageContext.setAttribute("nums",nums);

保存一个数组,用于迭代。

%>

<c:forEach items="${nums}" var="num">

${num}

</c:forEach>

<c:forEach begin="1" end="7" step="2">

hello<br>

</c:forEach>

这里结果会输出hello4次,因为步长step为2.从1到7每次间隔2.就输出4次。

4.

<c:forToken> 用于使用指定字符分割字符串

Items属性也是用于获取指定分割的字符串,可以使用el表达式获取,

Delims用于设置使用什么字符进行分割,使用var变量来保存分割的字符。

<c:forTokens items="${fortoken}" delims="," var="s">

${s}

</c:forTokens>

Sun JSTL 常用几个核心库标签

输出:ddf eed ggee ss

5.

<c:import> 标签 一个导入功能的标签,可以把外部资源导入,并保存在一个变量中。

Url指定一个资源路径,可以是绝对和相对。charEncoding指定输出编码,scope指定保存域。Var的值是一个String 就是在域里面保存资源的变量。

Url也可以使用

Sun JSTL 常用几个核心库标签

这种格式。

Sun JSTL 常用几个核心库标签

6.

<c:redirect>标签比较简单,用来页面重定向 可以和url标签一起使用。

Sun JSTL 常用几个核心库标签

7.

<c:out>标签,用于输出文本,可以是实现转义功能。Value可以使用el表达式获取,

escapeXMl用于表示是不是按照字符原来格式输出,default指定一个缺省值,缺省值表示的是当value=null的时候。

Sun JSTL 常用几个核心库标签

上面代码将输出 <a>这个是一个测试</a> 

8.

<c:set>用于设置4大域里面的变量或者属性值,可以是bean或者是map集合的

有4种用法,

Sun JSTL 常用几个核心库标签

这个是直接设置保存域中值的变量。

<c:set var="z">

heh

</c:set>

这种情况是没有value的情况下使用标签体设置变量值。

第三种情况,

Sun JSTL 常用几个核心库标签

这里是设置map集合属性的值,taget指定map对象,也可以是一个javabean对象,property代表属性值,如果没有value 可以使用标签体内容来设置,如下

Sun JSTL 常用几个核心库标签