JSP页面EL表达式不解析
问题是这样:在搭建springMVC环境的时候,笔者写了一个简单的Controller如下:
@Controller
public class HelloController { @RequestMapping(value = "/hello.do", method = RequestMethod.GET)
public String hello(Model model) { model.addAttribute("hello", "hello_SpringMVC");
model.addAttribute("message", "Hello SpringMVC");
return "hello"; }
}
调用这个控制器,返回hello.jsp,页面代码如下:
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
${hello}<br>
${message}<br>
${hello123 }
</body>
</html>
正常情况下页面应该会输出字符串信息,可是实际上输出结果是未经解析的EL表达式。

笔者查看了日志,发现hello和message都正确的转发到了hello.jsp中,可是EL表达式为什么没有正确的解析呢?

经过查阅资料,有四种情况下EL表达式是无法正确别解析的,
分别是:
- Application server in question doesn't support JSP 2.0. (应用服务器不支持JSP2.0)
- The
web.xmlis not declared as Servlet 2.4 or higher. (web.xml中servlet版本没有声明在2.4以上) - The
@pageis configured withisELIgnored=true. (页面上配置了<%@ page isELIgnored="true" %> ) - The web.xml is configured with
<el-ignored>true</el-ignored>in<jsp-config>. (web.xml中显式地配置了忽略EL表达式)
最终发现我的web.xml中声明的servlet版本是2.3,所以默认是不自动解析EL表达式的。
而我的web.xml这样是使用了maven-archetype-webapp创建的缘故。
<!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>
<display-name>Archetype Created Web Application</display-name> <servlet>
<servlet-name>springmvc</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springmvc</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping>
</web-app>
只要更改成如下即可, 版本最好是你项目中使用的JSP版本,
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
...
</web-app>
总结一下:页面无法解析EL表达式是因为web.xml中JSP版本在2.4一下,而我在项目中使用的是JSP3.0,原因在于工程是通过maven-archetype-webapp创建的,而这个maven工程默认还在使用JDK1.5。
JSP页面EL表达式不解析的更多相关文章
- jsp页面el表达式不起作用
web.xml中2.4版本的默认导入的standerd.jar,和jstl.jar是使用el表达式的包是启动的而2.5版本的web.xml中默认是关闭的所以在2.5的所有jsp中需要启动一下用< ...
- 关于SSM框架项目中jsp页面EL表达式使用的一些疑问(一)
问题 ssm框架整合中,jsp页面中EL表达式所引用的对象“page”可以在controller中使用mav.addObject(“page”,pag )进行添加,如果省略mav.addObject( ...
- ssm项目导入activiti依赖后jsp页面el表达式报错
错误原因:Tomcat8.x与activiti6.0依赖冲突导致 解决方法: 1.修改tomcat版本 2.在pom.xml中修改 在依赖中把 <dependency> <group ...
- jsp页面el表达式<c:choose> <c:when的用法
等于 是if else <c:choose> <c:when test="${paginationModel.py_province != ''}"> 如果 ...
- jsp中的el表达式没有解析
今天发现jsp中的el表达式没有解析,把解决的过程记录一下 在web.xml的web-app节点的版本改成2.4以上
- MVC实现登录,增删改查之数据展示:JSP的EL表达式(二)
这里的数据展示利用jsp的EL表达式,后台放入session,前台EL获取 数据库设计是这样的,一个老师对应有多个学生,在学生表student中建立外键tid与老师表teacher的tid对应,现在老 ...
- JSP、EL表达式的入门(要用)
2018-08-12 22:55:23 * JSP.EL表达式的入门(要用) * Servlet/JSP 是两种动态的WEB资源的两种技术. * 使用Servlet 生成HTML的页面 ...
- 超全面的JavaWeb笔记day12<Jsp&JavaBean&El表达式>
1.JSP三大指令 page include taglib 2.9个内置对象 out page pageContext request response session application exc ...
- JSP的EL表达式语言
以下内容引用自http://wiki.jikexueyuan.com/project/jsp/expression-language.html: JSP表达式语言(EL)可以方便地访问存储在JavaB ...
随机推荐
- Java 下载JDK账号
目前在官网下载低于jdk1.8的Javajdk的时候需要登陆,这边分享一个账号,方便下载 账号:2696671285@qq.com 密码:Oracle123 javajdk下载地址:点击打开链接
- PHP面试题及答案解析(4)—PHP核心技术
1.写出一个能创建多级目录的PHP函数. <?php /** * 创建多级目录 * @param $path string 要创建的目录 * @param $mode int 创建目录的模式,在 ...
- 原 [Android]LIstView的HeaderView
目录[-] (1)添加HeaderView之后尺寸布局被忽略. (2)添加HeaderView之后导致OnItemClickListener的position移位 (3)LayoutInflater的 ...
- [C/C++标准库]_[0基础]_[怎样实现std::string自己的Format(sprintf)函数]
场景: 1. C语言有自己的sprintf函数,可是这个函数有个缺点,就是不知道须要创建多大的buffer, 这时候能够使用snprintf函数来计算大小,仅仅要參数 buffer为NULL, co ...
- java消息中间件之ActiveMQ初识
目录 消息中间件简介 解耦合和异步 可靠性和高效性 JMS P2P Pub/Sub AMQP JMS和AMQP对比 常见消息中间件 ActiveMQ RabbitMQ Kafka 综合比较 标签(空格 ...
- Photoshop中磁力套索的一种简陋实现(基于Python)
经常用Photoshop的人应该熟悉磁力套索(Magnetic Lasso)这个功能,就是人为引导下的抠图辅助工具.在研发领域一般不这么叫,通常管这种边缘提取的办法叫Intelligent Sciss ...
- Hibernate3中generator标签使用
在XXX.hbm.xml映射配置文件中定义<generator class="native"/>标签是为了告诉Hibernate框架使用什么方式去生成主键class对应 ...
- VMWare Workstation和VMWare vSphere(转)
VMware workstation一定是安装在window操作系统上的. VMware vSphere可以直接安装在x86机器上,使这台机器完全虚拟化. VMware vSphere主要是企业级用户 ...
- Web存储使用详解(本地存储、会话存储)
Web存储使用详解(本地存储.会话存储)1,Web存储介绍HTML5的Web存储功能是让网页在用户计算机上保存一些信息.Web存储又分为两种:(1)本地存储,对应 localStorage 对象.用于 ...
- 自定义验证----required属性
1,required属性 - 表示字段不能为空(注意:只有用户单击“提交”按钮提交表单的时候,浏览器才会执行验证.目前HTML5不支持指定验证的时间,而且验证消息的样式和内容各个浏览器不大一样,不能修 ...