Google App Engine 添加 EL(Expression Language)支持

在使用Google App Engine的过程中遇到一个问题,就是JSP中的EL没有被正确的解析。

 

考虑到如下几个原因,GAE Eclipse Plug-in 生成的项目默认是使用Servlet2.5的标准,而2.5版本是默认忽略EL的,所以JSP中使用EL会失效。另一个原因,插件生成的web.xml强制绑定了servlet2.3的DTD,如下所示:

<!DOCTYPE web-app PUBLIC   
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"   
 "http://java.sun.com/dtd/web-app_2_3.dtd">  

Servlet2.3版本是不支持EL的。所以上面这个原因才是真正导致EL在JSP中被忽略的原因。
我解决这个问题的办法是将WEB.XML的版本制定为Servlet2.4版本,因为Servlet2.4默认支持EL。操作方式就是去掉上面的DTD,然后加上下面的schema定义:

<web-app version="2.4" 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">   

你可能感兴趣的:(java,Web,Google,sun,GAE)