jsp页面中的EL表达式不被解析的问题作者:深圳金格朗科技有限公司 来源:博客园 发布时间:2011-06-08 10:54 阅读:2 次 原文链接 [收藏]
在使用jsp的el表达式时,发现tomcat 5对其不解析。按原样输出如${items}.
原样把tomcat 的jsp例子拷过来还是如此。web.xml里和lib里的配置都配好了。找了很久才发现web.xml文件使用的是servlet 2.3版本的声明的问题。el在servlet 2.3中默认是不启用的。
servlet 2.3的
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app id="WebApp_ID">
tomcat自带的 servlet 2.4的。
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
把web.xml的声明部分改为2.4的即可。
还有就是如果使用了<taglib>标签就需要加<jsp-config>父标签。具体内容看jsp2.0和servlet2.4规范
<jsp-config>
<taglib>
<taglib-uri>/tags/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
</jsp-config>
在使用jsp的el表达式时,发现tomcat 5对其不解析。按原样输出如${items}.
原样把tomcat 的jsp例子拷过来还是如此。web.xml里和lib里的配置都配好了。找了很久才发现web.xml文件使用的是servlet 2.3版本的声明的问题。el在servlet 2.3中默认是不启用的。
servlet 2.3的
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE web-app
PUBLIC '-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN'
'http://java.sun.com/dtd/web-app_2_3.dtd'>
<web-app id="WebApp_ID">
tomcat自带的 servlet 2.4的。
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4">
把web.xml的声明部分改为2.4的即可。
还有就是如果使用了<taglib>标签就需要加<jsp-config>父标签。具体内容看jsp2.0和servlet2.4规范
<jsp-config>
<taglib>
<taglib-uri>/tags/struts-bean.tld</taglib-uri>
<taglib-location>/WEB-INF/struts-bean.tld</taglib-location>
</taglib>
</jsp-config>
分享到:
相关推荐
当用户提交表单后,Struts 2会使用OGNL解析这些表达式,将数据保存到对应的模型对象中,如`getUser().setUsername()`。而在显示用户信息时,同样可以通过OGNL表达式获取数据,如`getUser.getUsername()`。 **值堆栈...
控制器会从数据库查询用户信息,然后将结果放入模型(Model),再由Spring MVC或者Struts2等框架自动绑定到JSP页面上的EL表达式。 EL表达式的优势在于简化了JSP页面的代码,使其更专注于展示逻辑,而不是数据访问...
因此,开发者应使用Struts2的安全配置选项,如禁用不安全的OGNL表达式,或者使用`@SkipValidation`注解来限制某些Action方法的OGNL表达式执行。 总结来说,Struts2中的OGNL表达式是连接模型和视图的关键工具,它...
OGNL(Object-Graph Navigation Language)是一种功能强大的表达式语言,用于获取和设置Java对象的属性,它广泛应用于Struts2框架中用于数据访问和表达式的解析。OGNL表达式提供了简洁的语法来访问和操作对象图,...
- 正确答案为 **B.struts标签可以结合EL表达式灵活存取上下文环境中的数据**。 - Struts2标签库提供了丰富的标签用于简化页面开发,这些标签支持使用EL表达式来访问应用中的数据。因此,选项B是正确的。至于其他选项...
- **$**:在JSP页面中表示EL表达式的开头,但在Struts2中通常不直接使用,而是通过#符号配合使用。 #### 五、示例代码详解 为了更好地理解OGNL表达式的使用,我们来看一个具体的示例。假设我们在开发一个简单的Web...
此外,如果使用Struts框架,还需要确保在`/WEB-INF/lib`目录下有Struts和相关EL的库文件,以便正确解析EL表达式。 #### 在Struts中使用EL 当在Struts项目中使用EL时,需要注意的是Struts的配置也需要支持EL。在`...
Struts-EL JAR提供了对EL的支持,使得开发者可以在ActionForm和ActionContext中使用EL表达式。 5. **struts-taglib-x.x.x.jar**:这个文件包含了一系列的自定义JSP标签,它们简化了在JSP页面上实现Struts功能的过程...
- EL表达式的解析和执行过程涉及到多个类和方法的调用。以`PageContextImpl.proprietaryEvaluate`方法为例,该方法内部会调用到`AstValue.getValue`方法,进而调用到`JasperELResolver.invoke`方法,最后通过反射...
3. **Struts Plugins**:Struts有许多插件,如Struts-El、Struts-Test等,它们提供了额外的功能,如EL表达式语言支持、单元测试集成等。 4. **Commons Libraries**:Struts依赖于Apache Commons系列的库,如Commons...
#### 三、Struts2中的EL表达式和JSTL **EL表达式:** 在Struts2中,可以使用EL表达式来访问JavaBean的属性。EL表达式遵循如下规则: - EL表达式通过`$`或`${}`的形式来引用属性。 - 可以使用`.`或`[]`语法来访问对象...
10. **jsp-api.jar**:包含JSP运行所需的API,比如JSP标签、EL表达式等。 11. **jstl.jar** 和 **standard.jar**:JSTL(JavaServer Pages Standard Tag Library)提供了标准的JSP标签库,可以替代部分自定义JSP...
6. JSP页面展示结果,可能通过ValueStack与Struts的EL表达式来访问模型数据。 Struts还引入了Tiles框架,提供更灵活的视图组织方式。Tiles允许开发者创建可重用的页面组件,通过定义模板布局和组合组件来构建复杂的...
7. **struts-el**:支持表达式语言(EL,Expression Language)的标签库,EL是一种轻量级的脚本语言,常用于JSP页面中,用于访问JavaBean属性或执行简单的运算。 8. **struts-faces**:如果项目中使用了JSF(Java...
8. **struts-el.jar**(如果使用EL表达式语言):提供对Expression Language(EL)的支持。 9. **commons-logging.jar**:Struts使用Apache Commons Logging进行日志记录,这个库是必需的。 10. **commons-...
通过对这些例子的探索,开发者可以深入理解Struts 1的运作机制,掌握如何编写Action类、配置struts-config.xml文件、利用标签库构建用户界面,以及如何在实际项目中整合其他技术,如EL表达式语言。这些都是构建基于...