JSP JSTL
JSTL是Sun给JSP制定的一套标准标签库,JS代表JSP,TL即Tag Library。
JSTL是一套很古老的标签库了,很多东西都不再适用,这里只介绍几个常用的标签。
使用JSTL需下载添加以下4个jar包
标签 输出一段文本或表达式的值
默认值
value指定要输出的内容,可以使用输出表达式、EL表达式。
JSTL中的标签相当于html元素,属性值不能直接写表达式,比如value="requestScope.name"这是获取不到值的,会直接作为纯文本输出。
可以指定默认值,当域中没有指定的变量时,会输出默认值。默认值可以写成属性形式,也可以写在元素体中。
可以指定escapeXml属性,是否避免特殊字符,默认值是true,会自动对特殊字符进行转义。
第一句代码不会解析
标签,原样输出
hello
。第二句输出hello,会显示出
标签的效果。
为true或缺省时,会作为纯文本输出,不会解析里面的value中的特殊字符。
为fasle时,会解析value中的特殊字符,显示出效果。
标签 条件判断,相当于if
request.setAttribute("score",80);
%>
及格
test设置条件(表达式),常用EL表达式,当表达式的值为true时,输出元素体的内容,否则输出空串。
可以直接在表达式中指出变量所在的域,也可以这样:
及格
用var指定表达式中的变量,scope指定变量所在的域。缺省scope时,默认为page。
标签 多个条件判断,相当于if-else,if-elseif-else
request.setAttribute("score",80);
%>
优
及格
不及格
test设置条件,常用EL表达式,表达式的值为true时,显示|输出标签体的内容。
标签 遍历集合、数组
String[] arr={"张三","李四","王五"};
%>
${pageScope.name}
var指定临时变量,代表一项,items指定集合、数组,常用输出表达式、EL表达式来指定,不能直接指定,比如items="arr"这是不行的。
此外可用begin、end、step属性限制范围。
元素体即循环体,常用EL表达式,临时变量是在page域中的,可缺省pageScope,不能直接写临时变量,比如
name
这是不行的。
可配合html标签使用。
标签 重定向
马上重定向到url指定的页面,相当于 response.sendRedirect("/login.jsp");
标签 在某个域中放入|设置一个参数
相当于 request.setAttribute("name","chy"); 。