el表达式在页面不显示问题解决方案
来源:互联网 发布:淘宝卖家体检中心 编辑:程序博客网 时间:2024/06/04 16:24
把web.xml 中Web-App版本修改到2.4
- <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
- xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- 修改后的Web.xml...Web-App
- <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">
为什么要修改,原因是jboss-4.0.5太低了....如果是jboss-4.2.5.就不用修改.
以下是网上找到的.只试了修改Web.xml.成功了.
Tomcat 5.5使EL表达式不被解析。
现象
代码${userSession.user_name}是JSP中的一个代码片段;
如果部署到tomcat5.5中,不会显示出session中的变量user用户名,而只会把 ${userSession.user_name}打印出来,猜测很可能是tomcat5.5的bug,不解析(或屏蔽了)EL表达式。
原因
如果web.xml中声明部分的schema版本为2.5或者以上,而tomcat使用的是5.5.x以下的版本的时候就会出现在页面直接显示而不解析jstl/el表达式。如果web.xml中声明部分的schema版本为2.5或者以上,tomcat使用使用的是6.0以上则不出现这种问题。
解决方案
(1)升级tomcat容器至tomcat6(推荐方法)。
(2)修改web.xml中声明部分的schema版本为2.4 (已验证,果然可以~)。
(3)在使用了EL表达式的所有JSP页面的中加入page指令添加 isELIgnored="false",
形如:<%@ page isELIgnored="false" %>(比较麻烦)。
-----------------------------------------------------------------------------------------
jsp头一定要加上isELIgnored="false",否el会不被执行。
如:
<%@ page language="Java" contentType="text/JavaScript; charset=UTF-8"
isELIgnored="false" buffer="24kb" pageEncoding="UTF-8"%>
好久没用EL表达式了。由于以前做项目都是用struts2的标签。最近做一个项目用公司以前的老项目的框架。所以用的就是struts1.而struts1的标签我一个都不会。只好决定用JSTL标签。取值就只能用EL表达式了。
-----------------------------------------------------------------------------------------
原因是JSp页面的isELIgnored值不知道被谁给改了。
解决办法:1,在JSP页面上面加上<%@ page isELIgnored="false"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
C标签有两种加载方式1:<%@ taglib uri="http://java.sun.com/jstl/core" prefix="c"%>
2:<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
这里必须用第二种才能解析。
-----------------------------------------------------------------------------------------
今天也碰到el表达式无法解析的事情,于是在网上查询了下,盗取了一篇,说的挺详细的!
web.xml声明部分一般分为如下版本的xsd,
web-app_2_2.xsd
web-app_2_3.xsd
web-app_2_4.xsd
web-app_2_5.xsd
更详细的列出各版本web.xml声明部分吧,如下:
- web-app_2_2.xsd
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/dtd/web-app_2_2.dtd">
- <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/dtd/web-app_2_2.dtd">
- web-app_2_3.xsd
- <?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">
- <?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_2_4.xsd
- <?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">
- <?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">
- web-app_2_5.xsd
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
- <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.5" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
确定web.xml里的xsd版本之后一定要在JSP的声明(<%@page %>)部分加一行,如下:
<%@ page isELIgnored="false" %>
这样设为false才能解析EL表达式。
经过各版本的test之后....
注意!! 其中servlets 2.4(我没记错的话JSP 2.0出来之后的第一个版本),这个版本的isELIgnored默认设置为false。所以使用web.xml里用web-app_2_4.xsd声明的时候在JSP页面不用特意声明。
------------------------------------------------------------
原因:问题在web.xml配置文件上,web.xml声明部分一般分为如下版本的xsd,
web-app_2_2.xsd
web-app_2_3.xsd
web-app_2_4.xsd
web-app_2_5.xsd
具体声明代码就不列出,网上可以找到,查找以前项目的web.xml文件也可以。 在jsp页面的<%@ page isELIgnored="false" %>声明中,将isELIgnored属性设为false,EL表达 式才可以正常显示,在2.4版本之前的版本,isELIgnored默认为true,所以只能在JSP页面设置这个属性为false才可以。2.4版本中isELIgnored属性默认为false,因此EL表达式可以直接使用。
方法:1.JSP页面中<%@ page isELIgnored="false" %>,每个页面都如此,就会很麻烦。
2.将web.xml中的声明改为2.4版本,如下:
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_4.xsd">
下面是官方Documention中isELIgnored Attribute的详解:
The isELIgnored Attribute
• Format
– <%@ page isELIgnored="false" %>
– <%@ page isELIgnored="true" %>
Purpose
– To control whether the JSP 2.0 Expression Language
(EL) is ignored (true) or evaluated normally (false).
• Notes
– If your web.xml specifies servlets 2.3 (corresponding to
JSP 1.2) or earlier, the default is true
• But it is still legal to change the default—you are permitted
to use this attribute in a JSP-2.0-compliant server
regardless of the web.xml version.
– If your web.xml specifies servlets 2.4 (corresponding to
JSP 2.0) or earlier, the default is false
PS: 我本来的版本是2.5,以前也没出过此类问题,感觉可能是Tomcat的版本不一样造成的问题,在Tomcat中的web.xml中貌似也有可以配置EL可用的定义。这种小问题虽然不起眼,但写程序时感觉还是很容易遇到的,而且只有在亲自写代码时才会碰到,书上是找不到的,所以积少成多,也许这就是经验积累的过程吧!
PS: 2.5版本的也是默认true,要在每个使用EL表达式的JSP设定isELIgnored为false,
另,引入JSTL可以在本地放置uri="/WEB-INF/c.tld"文件,也可以引入网上的解析文件uri="http://java.sun.com/jsp/jstl/core",同时别忘了需要2个jar包(jstl.jar和standard.jar)
- el表达式在页面不显示问题解决方案
- EL表达式不显示
- SpringMVC中JSP页面不显示EL表达式的原因
- jsp页面不识别EL表达式,显示效果为EL表达式自身字符串
- easyUI页面加载完成前不显示样式问题解决方案
- 关于EL${}在jsp页面不显示的问题
- jstl中el表达式不生效问题解决
- EL表达式${}不能用的问题解决办法
- struts2框架在jsp页面无法解析EL表达式的问题解决
- JSP页面EL表达式不解析
- jsp页面中EL表达式被当成字符串处理不显示值的问题
- el表达式不显示获取的值
- ScrollView嵌套ViewPager不显示问题解决方案
- EL表达式在jsp页面不能用,还是原样输出的解决办法
- formatDate-------date、datetime型数据用EL表达式在页面显示
- formatDate-------date、datetime型数据用EL表达式在页面显示
- JFinal在使用oracle数据库时页面显示EL表达式获取不到值
- 用el表达式和jspl在jsp页面显示用户列表
- @CookieValue注解的使用
- 变更手机内部存储遇到的一些问题及解决方案
- Linux学习之路-笔记整理
- jdk1.6及之前版本IO流异常处理标准代码
- 什么是句柄?为什么会有句柄?HANDLE
- el表达式在页面不显示问题解决方案
- 使用Github Pages建独立博客
- 从APP升级更新浅谈安卓Service知识
- OpenCV 3.0与OpenCV 2.4的区别
- C#中using
- Spring Boot+AngularJS导出excel
- ListView优化之一
- 非常实用的PHP常用函数汇总
- Linux打开本地网络回环