IT忍者神龟之 JSP中EL表达式语言不能使用的解决方法

来源:互联网 发布:c语言 创建 编辑:程序博客网 时间:2024/05/20 09:48

在JSP2.0中,增加了EL语言,可以通过EL语言,可以通过EL语言,实现获取数据,进一步将scriptlet

代码从JSP页面中分离出来.
EL语言给大家带来了方便,但有时,也会遇到EL表达式不能显示的情况,下面,我将列举几种EL表达式不

能显示的情况及解决方案:
1.WEB-INF/web.xml,web应用的部署描述文件引用的是servlet规范的2.3版本或更早的版本(即jsp1.2

或更早),则jsp2.0表达式语言自动在web应用中停用,注意里面的version属性应为2.4及以上版本.

如果是2.3版本,则xml指令和文档类型定义如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd">

如果是2.4版本,则为:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">


2.web.xml中,是否停用了jsp表达式语言
<jsp-config>
<jsp-property-group>
<url-pattern>/legacy/*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>

这种情况的解决方法就是把<el-ignored>true</el-ignored>改为<el-ignored>false</el-ignored>

3.页面停用jsp表达式语言
<%@ page isELEnabled ="false"%>

解决方法:改为<%@ page isELEnabled ="true"%>

2.4版本默认支持el表达式,如果使用2.5版本,默认el表达式是关闭的,而且上面的<%@ page isELEnabled ="true"%>不能用了。

那么jsp页面里应该增加<%@ page isELIgnored="false"%>



jsp中EL表达式不能显示的解决方法
 
在JSP2.0中,增加了EL语言,可以通过EL语言,可以通过EL语言,实现获取数据,进一步将scriptlet

代码从JSP页面中分离出来.
EL语言给大家带来了方便,但有时,也会遇到EL表达式不能显示的情况,下面,我将列举几种EL表达式不

能显示的情况及解决方案:
1.WEB-INF/web.xml,web应用的部署描述文件引用的是servlet规范的2.3版本或更早的版本(即jsp1.2

或更早),则jsp2.0表达式语言自动在web应用中停用,注意里面的version属性应为2.4及以上版本.

如果是2.3版本,则xml指令和文档类型定义如下:
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd">

如果是2.4版本,则为:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4"

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee  

http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">


2.web.xml中,是否停用了jsp表达式语言
<jsp-config>
<jsp-property-group>
<url-pattern>/legacy/*.jsp</url-pattern>
<el-ignored>true</el-ignored>
</jsp-property-group>
</jsp-config>

这种情况的解决方法就是把<el-ignored>true</el-ignored>改为<el-ignored>false</el-ignored>

3.页面停用jsp表达式语言
<%@ page isELEnabled ="false"%>

解决方法:改为<%@ page isELEnabled ="true"%>

网友二:要想使用EL语法的朋友请进,关于使用EL语法的问题综合解决!
我找到问题的所在了,解决办法如下:  
  1.Tomcat必须使用5.0以上版本,才能支持JSP2.0和Servlet2.4规范。到\WEB-INF下,修改web.xml

文件,改为servler2.4的格式(2.3和2.4的语法不同),如下  
  <?xml   version="1.0"   encoding="ISO-8859-1"?>  
   
  <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/web-app_2_4.xsd"  
          version="2.4">  
  2.在使用EL语法jsp文件头添加<%@   page   isELIgnored="false"   %>,如为true表示EL语法按

照字符处理;  
  3.如果觉得每个文件改麻烦,则进一步修改web.xml文件,添加  
  <jsp-config>  
        <jsp-property-group>  
            <url-pattern>/*.jsp</url-pattern>  
            <el-ignored>false</el-ignored>  
              ...  
        </jsp-property-group>  
  </jsp-config>  
  其中<url-pattern>表示设定值影响范围,<el-ignored>含义同第二条  
  大家试试,EL语法是不是可以正常显示了!

//在此,也顺便说一下标签库的设置.如以前我们可以在web.xml里使用<taglib></taglib>直接配置标签库,不过现在好象不行,解释如下:
在tomcat中配置自定义标签的时候,会遇到一个问题 
web.xml中,有两个版本的DTD认证,一个是java1.2版本的,一个是2.0版本的,所以就形成了不同版本的时候作出的配置不一样

xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd
是2.0版本的

所以在web.xml中添加自己的taglib的时候要包含在 <jsp-config> </jsp-config>中间才行.
<jsp-config>
  <taglib>
      <taglib-uri>/date </taglib-uri>
      <taglib-location>/WEB-INF/date.tld </taglib-location>
  </taglib>
</jsp-config>


0 0
原创粉丝点击