在说
SpringMVC
之前
,
先说一说
JSTL(jsp
标准模板库
)
和
EL
表达式
,
因为具体的例子是用
JSTL
和
EL
表达式完成的
.
一.
JSTL
因为没有下到
jstl,
那么该怎么去找
JSTL
呢
?
用
eclipse
可以生成
,
在
struts(struts-blank)
里也可以找到
.
1.
我的
JSTL
容器是
Tomcat,
把
jstl.jar
和
standard.jar,copy
到你工程的
WEB-INF/lib
目录下
2.
然后把那
8
个
lib
文件再
copy
到
WEB-INF/lib
目录下
3.
然后在
web.xml
中配置
:
<
jsp-config
>
<
taglib
>
<
taglib-uri
>
[url]http://java.sun.com/jstl/fmt[/url]
taglib-uri
>
<
taglib-location
>
/WEB-INF/fmt.tld
taglib-location
>
taglib
>
<
taglib
>
<
taglib-uri
>
[url]http://java.sun.com/jstl/fmt-rt[/url]
taglib-uri
>
<
taglib-location
>
/WEB-INF/fmt-rt.tld
taglib-location
>
taglib
>
<
taglib
>
<
taglib-uri
>
[url]http://java.sun.com/jstl/core[/url]
taglib-uri
>
<
taglib-location
>
/WEB-INF/c.tld
taglib-location
>
taglib
>
<
taglib
>
<
taglib-uri
>
[url]http://java.sun.com/jstl/core-rt[/url]
taglib-uri
>
<
taglib-location
>
/WEB-INF/c-rt.tld
taglib-location
>
taglib
>
<
taglib
>
<
taglib-uri
>
[url]http://java.sun.com/jstl/sql[/url]
taglib-uri
>
<
taglib-location
>
/WEB-INF/sql.tld
taglib-location
>
taglib
>
<
taglib
>
<
taglib-uri
>
[url]http://java.sun.com/jstl/sql-rt[/url]
taglib-uri
>
<
taglib-location
>
/WEB-INF/sql-rt.tld
taglib-location
>
taglib
>
<
taglib
>
<
taglib-uri
>
[url]http://java.sun.com/jstl/x[/url]
taglib-uri
>
<
taglib-location
>
/WEB-INF/x.tld
taglib-location
>
taglib
>
<
taglib
>
<
taglib-uri
>
[url]http://java.sun.com/jstl/x-rt[/url]
taglib-uri
>
<
taglib-location
>
/WEB-INF/x-rt.tld
taglib-location
>
taglib
>
jsp-config
>
注意此处的
节点
.
是
jsp2.0
新增加的
,
如果没有此节点
,
而使用
就会报错
.
4.
在
jsp
页面中使用
jsp
指令
<%@ taglib=”c” uri=”
[url]http://java.sun.com/jstl/core_rt[/url]”%>
我们就可以使用
JSTL
了
.
二.
EL
表达式
EL
表达式和
JSTL
一样
,
都是属于
JSP
的技术
.
基本语法格式
${
表达式
},
当
jsp
页面遇到
${expression}
时
,JSP
容器的
EL
引擎就解释执行花括号内的表达式
.
- 在EL表达式中可以直接使用属性名来引用存储在各种域范围(page,request,session,application)中的属性.例如:
${user}
等效于
request.getAtrribute(“user”)
返回对象
.
- 可以用${javabean.xxx.xxxx}格式来访问javabean对象中属性的属性.以及使用user[0]的形式来访问集合对象.
- 可以执行基本的运算.
- 可以使用自定义函数.
- EL定义了一系列隐含对象,例如pageContext,cooike等.
为了防止
javascript
脚本***
,
通常使用
JSTL
标签
来对
EL
输出
.
在
web.xml
文件中可以配置
节点
(
为
的子元素
)
来使
jsp
不支持
EL
jsp-property-group>
也可以使用
page
指令的
isEgnored
属性来改变
web.xml
配置状态
.page
指令优先级高于
web.xml
里的配置
.
jsp-property-group>
上面的配置是指定
jsp
里不能使用脚本元素
.
EL
中的错误处理机制
:
EL
对
jsp
的错误处理就是
,
不提供警告
,
只提供默认值和错误
.
当子表达式有问题的时候
,
就使用默认值代替有问题的值
.
比如
${javabean.address.city},
如果
address
里没有
city
属性
,
则输出默认值
(
什么都不输出
).
而不是输出
nulll.
当
javabean
里没有
address
属性时
,
浏览器就会抛出异常
.
关于
EL,
还有待于补充
.