实现表达式语言
考虑使用大量Scriplet代码嵌入Java代码的JSP页面。过度使用Scriptlet代码使JSP页面变得混乱。因此。开发人员难以阅读和调试页面。另外,网页设计师在编辑表示代码时也会遇到问题。为了解决此类问题,开发无脚本的JSP页面受到推崇。
无脚本的代码使JSP页面易于阅读、维护和调试。无脚本的代码通过自定义标记定义。因而,Java引入了JSTL,它是JSP功能共同的自定义标记库的集合。JSTL 1.0 又引入了表达式语言(EL)。它原名SPEL。但是,它以前限制于JSTL标记。后来,JSP规范2.0再次引入了EL,它可用于JSTL和JSP标记。
1. 使用EL
通过使用EL,对Java编程语言知之甚少的开发人员也可创建动态JSP页面。EL可在JSP标记内使用运行时表达式。这方便了JSP页面的动态行为并使页面上没有脚本。这可使JSP页面易于阅读和调试。在JSP页面中,EL用写在JSP标记内的${}模式标识。
以下语法表示了JSP页面中的EL表达式:
${ expression }
字符$和{是标志JSP页面中EL表达式开始的特殊字符。但是,要在JSP页面中使用这些字符,您需要\符号去除它们的特殊含义。例如,要在JSP页面中打印${,需要它写成\${。类似地,要在EL表达式内使用英文单引号和双引号,需要分别写\‘和\’'。
EL可方便访问:
- JavaBean组件中存储的应用程序数据。
- 隐式对象。
- Java类。
- 集合元素。
- 作用域变量。
EL提供以下好处:
- 它简化了JSP页面中表达式的使用。它无需使用Scrpitlet代码就可使用表达式。
- 它提供了自动类型转换。
EL表达式可通过以下方式使用:
- 作为属性值:EL表达式可用作标准标记和自定义标记中的属性值。属性值由计算EL表达式后生成的值替换。例如,以下代码段显示了将EL表达式用作include标记内的属性值:
<jsp:include page ="${location}">
- 作为JSP页面中的文本:EL表达式可用作JSP页面中的文本。该文本在计算EL表达式后显示在JSP页面上。例如,以下代码将显示欢迎消息和变量name中存储的值:
<h1>Welcome $</h1>
2. 使用EL访问隐式对象
EL方便了对JSP的所有隐式对象和作用域变量的访问。以下代码段显示了隐式对象的使用:
My Email is:{initParam.myEmail}
在上述代码中,initParam是隐式对象,myEmail是所引用对象的名称。
以下示例在JSP中用Scri