JSP页面EL表达式不解析

转载自  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表达式为什么没有正确的解析呢?

image

经过查阅资料,有四种情况下EL表达式是无法正确别解析的,

分别是:

  1. Application server in question doesn't support JSP 2.0. (应用服务器不支持JSP2.0)
  2. The web.xml is not declared as Servlet 2.4 or higher.  (web.xml中servlet版本没有声明在2.4以上)
  3. The @page is configured with isELIgnored=true. (页面上配置了<%@ page isELIgnored="true" %> )
  4. 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。


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/328806.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

将字符串String str= “abc god 中国 java“ 反转每个单词 结果: “cba dog 国中

/*** String str "abc god 中国 java"&#xff08;较难&#xff09; 反转每个单词结果&#xff1a; "cba dog 国中 avaj"**/ public class Demo2 {public static void main(String[] args) {String str …

netcore - MVC的ActionFilter的使用

经过一周的时间没有分享文章了&#xff0c;主要是在使用.netcore做一个小的项目&#xff0c;项目面向大众用户的增删改查都做的差不多了&#xff0c;打算本周在云服务器上部署试试&#xff0c;很期待&#xff0c;也希望上线后大家多多支持&#xff1b;以上纯属个人废话&#xf…

启动tomcat不出现命令窗口

转载自 启动tomcat不出现命令窗口 有个软件要安装在U盘中&#xff0c;B/S结构&#xff0c;用tomcat做应用服务器&#xff0c;客户要求tomcat不能注册为系统服务&#xff0c;启动时tomcat启动时不能出现命令行窗口&#xff0c;怎么实现&#xff1f;根据你的问题描述&#xff0c…

猜数字游戏 : 共给玩家10次机会,若第一次就猜对了,显示‘您真是个天才’,若10也没猜对,显示“您太笨了,下次努力吧!”, 若是第2-10次猜对了,只简单的显示:“恭喜您猜对了”。

猜数字游戏 &#xff1a; 共给玩家10次机会&#xff0c;若第一次就猜对了&#xff0c;显示‘您真是个天才’&#xff0c;若10也没猜对&#xff0c;显示“您太笨了&#xff0c;下次努力吧&#xff01;”, 若是第2-10次猜对了&#xff0c;只简单的显示&#xff1a;“恭喜您猜对了…

Java:对double值进行四舍五入,保留两位小数的几种方法

转载自 Java&#xff1a;对double值进行四舍五入&#xff0c;保留两位小数的几种方法1. 功能 将程序中的double值精确到小数点后两位。可以四舍五入&#xff0c;也可以直接截断。 比如&#xff1a;输入12345.6789&#xff0c;输出可以是12345.68也可以是12345.67。至于是否需…

有一种陪伴不在身边,却在心间

内容来源&#xff1a;这里 有一种情&#xff0c;不求朝暮相见 只想在灵魂深处相偎 能多久&#xff0c;就多久 有一种朋友不在生活里 却在生命里 有一种陪伴不在身边 却在心间 每天在朋友圈都可以看到 你的行踪或心语 有空回复一下 感觉彼此就在面前&#xff0c;全心一笑…

NSubstitute完全手册索引

NSubstitute 是什么&#xff1f; NSubstitute 是一个 .NET 单元测试模拟类库。 一直以来&#xff0c;开发者对 mocking 类库的语法的简洁性有强烈的需求&#xff0c;NSubstitute 试图满足这一需求。简单明了的语法可以让我们将重心放在测试本身&#xff0c;而不是纠缠在测试替代…

如何彻底删除MySQL数据库(保姆级教学)

如何彻底删除MySQL数据库&#xff1a; 一、首先在控制面板删除你的MySQL数据库的部分安装 如图所示&#xff1a; 二、打开你的C盘&#xff0c;在Program Files 或者 Program Files&#xff08;x86&#xff09;里面找到有关MySQL的所有文件夹&#xff0c;并删除 如图所示&…

获取一个 Byte 的各个 Bit 值

转载自 获取一个 Byte 的各个 Bit 值1. bit&#xff1a;位 一个二进制数据0或1&#xff0c;是1bit&#xff1b;2. byte&#xff1a;字节 存储空间的基本计量单位&#xff0c;如&#xff1a;MySQL中定义 VARCHAR(45) 即是指 45个字节&#xff1b; 1 byte 8 bit3. 一…

Asp.net core中Migration工具使用的交流分享

一、文章参数 开发工具&#xff1a;visual studio 2015 community update 3 .net core tools(preview2) sqlserver2012 express开发环境&#xff1a;win10&#xff08;版本14393&#xff09; .net core(版本 1.0.0-preview2-003121)项目名称&#xff1a;AirMusic项目模板&…

BigDecimal类的使用

BigDecimal类的使用 一般常用的数据类型int和double类型但是在项目中我们会使用到大整数的处理类BigDecimal类 它有着自己的加减乘除和比较大小的方法 一、BigDecimal加减乘除的使用 1.加法 BigDecimal num1 new BigDecimal("10"); BigDecimal num2 new BigDe…

经典台词

内容来源&#xff1a;网络&#xff0c;侵删 01.满桌佳肴&#xff0c;你得有好牙&#xff1b;腰缠万贯&#xff0c;你得有命花。 02.赏一路风光&#xff0c;你得走得动&#xff1b;拣一座金山&#xff0c;你得能够拿。 03.垄沟里刨食的是条好汉子&#xff0c;病床上数钱的是个傻…

看了牛客网要发博客才好找工作,发篇冷静一下

看了牛客网要发博客才好找工作&#xff0c;发篇冷静一下

深入浅出 JIT 编译器

转载自 深入浅出 JIT 编译器JIT 简介 JIT 是 just in time 的缩写, 也就是即时编译编译器。使用即时编译器技术&#xff0c;能够加速 Java 程序的执行速度。下面&#xff0c;就对该编译器技术做个简单的讲解。 首先&#xff0c;我们大家都知道&#xff0c;通常通过 javac 将程…

org.springframework.uti包下的StringUtils的使用和org.apache.commons.lang包下StringUtils的使用

一、org.springframework.util.StringUtils StringUtils常用方法描述boolean isEmpty(Object str)判断字符串是否为空&#xff0c;如果为nul或者""则返回true&#xff0c;否则返回falseboolean hasLength(CharSequence str)判断字符串是否有长度&#xff0c;字符串不…

ASP.NET Core依赖注入解读amp;使用Autofac替代实现

1. 前言 关于IoC模式&#xff08;控制反转&#xff09;和DI技术&#xff08;依赖注入&#xff09;&#xff0c;我们已经见过很多的探讨&#xff0c;这里就不再赘述了。比如说必看的Martin Fowler《IoC 容器和 Dependency Injection 模式》&#xff0c;相关资料链接都附于文章末…

Java 中的伪共享详解及解决方案

转载自 Java 中的伪共享详解及解决方案1. 什么是伪共享 CPU 缓存系统中是以缓存行&#xff08;cache line&#xff09;为单位存储的。目前主流的 CPU Cache 的 Cache Line 大小都是 64 Bytes。在多线程情况下&#xff0c;如果需要修改“共享同一个缓存行的变量”&#xff0c;就…

ServletActionContext.getRequest().getSession() 和 ActionContext.getContext().getSession()的区别

ServletActionContext.getRequest().getSession() 和 ActionContext.getContext().getSession() ActionContext.getContext().getSession(); 这个方法获取的session是struts封装过的一个Map类型的session&#xff0c;只能调用put()方法缓存数据。 ServletActionContext.getRe…

弯下腰,拾起你无价的尊严

内容来源于网络&#xff0c;侵删&#xff01; 很久以前&#xff0c;一位挪威青年男子漂洋过海到了法国&#xff0c;他要报考著名的巴黎音乐学院。 考试的时候&#xff0c;尽管他竭力将自己的水平发挥到最佳状态&#xff0c;但主考官还是没能录取他。 身无分文的青年男子来到学…

在离线环境中发布.NET Core至Windows Server 2008

0x00 写在开始 之前一篇博客中写了在离线环境中使用.NET Core&#xff0c;之后一边学习一边写了一些页面作为测试&#xff0c;现在打算发布一下试试。看了下官方给出的发布教程感觉挺详细的了&#xff08;https://docs.asp.net/en/latest/publishing/iis.html&#xff09;&…