在jsp开发中,有时会遇到EL表达式不被支持的问题。对此,下面是完整攻略:
在jsp开发中,有时会遇到EL表达式不被支持的问题。对此,下面是完整攻略:
问题背景
在jsp开发中,可以使用EL表达式来简化开发过程,但有时在使用EL表达式时会遭遇并发生“不支持EL表达式”的问题,通常会因为如下原因:
- web.xml文件缺少支持EL表达式的配置;
- 服务器版本过低,不支持EL表达式导致不生效;
- 需要使用el-api和jstl(JSP标准标签库)两个JAR包提供的支持。
解决步骤
第一步:检查配置
首先,检查web.xml文件中是否包含以下配置:
如果缺少这个配置,就会导致EL表达式无法生效,添加完配置后重新运行程序即可。
第二步:添加相关JAR包
其次,需要添加el-api和jstl两个JAR包提供的支持,以下是Maven的依赖引用配置(以JSTL 1.2为例):
这里的javax.servlet-api依赖的作用是提供Servlet API相关的类,因此使用provided作用域,只在编译和测试时起作用。而javax.el-api依赖则是提供EL Expression相关的类。
添加好相关JAR包并重新编译、部署程序后,即可使用EL表达式。
示例说明
下面给出两个使用EL表达式的示例:
示例一
以上示例会在运行时判断var为username的变量是否等于‘John’,若为真则运行if块中的内容,输出 “Welcome back, John!”。
示例二
以上示例将一个整型数组转换成List,赋值给pageContext上下文,而JSTL标签库中的forEach标签则会对List中的元素进行迭代输出,逐行输出 "1 2 3 4"。
总之,只要遵循配置检查和添加JAR包的步骤,EL表达式将可以顺畅地在jsp开发中使用。