jsp标签和el表达式
(1)jsp标签是什么?
jsp标签其实就是一个占位符,对应一个标签类,容器遇到jsp标签之后,会找到对应的标签类中的代码然后执行。
因为在jsp文件里面直接写java代码,不利于jsp文件的维护(比如,将带有java代码的jsp文件交给美工去修改就很不方便),所以,sun才制订了jsp标签技术规范。
jsp标签的语法类似于普通的html标签(有标签体,有属性),使用jsp标签之后,jsp文件会变得简洁,利于维护,利于代码的复用。
(2)el表达式
一套简单的计算规则,用于给jsp标签的属性赋值,
现在,也可以直接输出。
(3)el表达式的使用
1)访问bean的属性
a)方式一 (a1.jsp)
${user.name}:容器会依次从pageContext,request,
session,application中查找绑订名称为"user"的对象,接下来,调用该对象的getName方法,最后输出。
注:如果依据绑订名找不到对应的对象,会输出空字符串。
对于null,会转化成空字符串输出。如果要指定查找范围,可以使用
pageScope,requestScope,sessionScope,applicationScope即可。
b)方式二
(a1.jsp)
${user["name"]}
注:
这种方式允许[]里面出现变量。
允许[]里面出现从0开始的下标,用来访问数组中的某个元素。
2)做一些简单的计算,计算的结果可以直接输出,
也可以用来给jsp标签的属性赋值 (a3.jsp)。
a,算术运算: "+","-","*","/","%"。
b,关系运算: ">",">=","<","<=","==","!="。
c,逻辑运算:"&&","||","!"
d,empty运算: 用来判断集合是否为空,或者是
否是一个空字符串。
3)获取请求参数值 (a4.jsp)
${param.name}
等价于request.getParameter("name");
${paramValues.city}
等价于request.getParameterValues("city");
(4)jstl标签
1)jstl是什么(java standard tag lib)
apache开发的一套标签,后来捐献给了sun,sun 将其命名为jstl。在javaee5.0当中,已经包含了该标签。
2)如何使用jstl?
step1,将jstl相关的jar文件拷贝到WEB-INF\lib下。
注:如果使用的是javaee5.0或者以上版本,不用拷贝了。
step2,使用taglib指令引入要使用的标签。
<%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
3)jstl核心标签
a) if标签
(a5.jsp)
标签体
当test属性值为true时,容器会执行标签体的内容。
test属性可以使用el表达式来赋值。
使用JSTL之前需要先导入jar包。例如jstl1.2