- JSTL 简介
- JSTL 可以使用在哪里
- JSTL 使用步骤
- 使用标签
- if 语句
- 选择语句
- 迭代遍历语句
- URL重写
- 设置属性值
- 删除属性值
- 异常捕获
- 导入其它 JSP 页面
- 重定向
- 输出指定的值
Java Standard Taglib(Java 标准标签库)。
JSTL 是一种代替 JSP 中的 Java 代码的技术。sun 公司制订的一种技术规范,用来将 JSP 页面中的 java 代码使用类似于 html 当中的标记来替换的一种技术。这样做的目的,是为了使 JSP 页面更好维护以及更好的测试。
JSTL 其实质是什么? JSTL 底层其实是一些 Java 代码,在 JSP 转换成 Servlet 类时,会在 service() 方法体内生成 JSTL 对应的 Java 代码。每种 JSTL 标签都有其固定的含义,最后会生成固定的 Java 代码。
JSTL 可以使用在哪里JSTL 只能用在 JSP 文件中,不可以在 XML 和 HTML 文件中使用,不可以用在 JS 语境中,不可以用在 Java 的语境中。
可以用在标签的属性值中,例如:
访问jstl05
JSTL 使用步骤
1.需要引用 JSTL 标准标签库相关的 jar 文件。 你如果使用 eclipse 开发,则将 jar 文件 copy 到 WEB-INF\lib
,并添加到构建路径中(构建的 classpath 中)。
jar 文件有:jstl.jar
、standard.jar
2.在 jsp 文件当中,使用 taglib
指令导入标签。
使用标签
jstl 标签都是结合 el 表达式一起使用的。 jstl 标签中不能使用 ognl 表达式。
if 语句
test 属性:当值为 true,执行标签体的内容(其实就是将内容输出到页面),为 false,则不执行。 var 属性:指定一个绑定名。 scope 属性:指定一个绑定范围。 var 属性和 scope 属性用于将 test 的结果绑定到指定的对象(pageContext、request、session、application)上。
示例代码:
Title
user's name:${user1.name}
user's gendar:
男
女
选择语句
用于分支,当某个条件满足,执行某一个分支。每一个分支条件用 when 标签来表示。
可出现多次,只用于
。 test 属性: 当值为 true,执行标签体的内容。
只出现 1 次,只用于
。 当其它分支都不满足条件,则执行该标签体的内容。
示例代码:
Title
user's gendar:
男
女
迭代遍历语句
用于遍历集合 items 属性:指定要遍历的集合。 var 属性: 指定一个绑定名,jsp 引擎会从集合当中取一个对象,绑定到 pageContext 对象上。 varStatus 属性: 指定一个绑定名,对应的绑定值是一个 java 对象,封装了遍历时的一些信息,包括当前遍历的对象的下标(index)以及 是第几次(count)遍历。
示例代码1:
Title
td {
text-align: center;
}
name
gendar
${user.name}
${user.gendar}
示例代码2:
Title
.row1 {
background-color: red;
}
.row2 {
background-color: yellow;
}
td {
text-align: center;
}
name
gendar
count
index
${user.name}
${user.gendar}
${status.count}
${status.index}
URL重写
当用户禁止 cookie 以后,会自动在地址后面添加sessionId。 当使用绝对路径时,会自动在地址前添加应用名。 value 属性:指定地址。在表单提交、链接当中,可以使用该标签。
Title
访问jstl07
设置属性值
绑定一个对象到指定的范围。 var 属性: 指定一个绑定名。 scope 属性:指定一个绑定范围。 value 属性: 绑定值。
示例代码:
Title
之前 rs=${rs}
之后 rs=${rs}
删除属性值
解除绑定
异常捕获
处理异常,会将异常信息封装成一个对象,绑定到 pageContext 对象上。属性 var 就是用来指定绑定名的。
捕获异常
${msg}
导入其它 JSP 页面
url 指定一个 jsp 文件的地址,jsp 会在运行时调用这个 jsp。
Title
jstl10...
重定向
重定向到另外一个地址。url 属性指定重定向的地址。
当禁止 Cookie 后,会自动在地址后加上 SessionId。
示例代码:
Title
输出指定的值
用于输出 el 表达式的值。 value 属性: 指定输出的值。 default 属性: 指定缺省值。 escapeXml 属性: 设置成 true,会将 value 中的特殊字符替换成相应的实体。缺省值就是 true。
示例代码:
输出指定的值
等价于
${1+1}
str:
<table>