之前在使用Maven時,創建一個We項目,有時候會用到EL表達式 ${message},會發現無法識別,顯示如下效果:

一直沒有明白為什么,今天,偶然間知道了原因。
如果你也遇到這樣的情況,來看一下你的web.xml文件:
~~~
<!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>
<!-- 字符集 過濾器 -->
<filter>
<filter-name>CharacterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
<init-param>
<param-name>forceEncoding</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>CharacterEncodingFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<servlet>
<servlet-name>helloworld</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>helloworld</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
</web-app>
~~~
這是舊版本的web.xml格式,可以到Tomcat下找一個web.xml看一下區別:
舊版本的web.xml

新版本的web.xml


把上面幾行標簽復制一下:(改成UTF-8)

復制過去之后,重新啟動項目,在訪問一次那個界面:

好了,已經可以正常使用了,
。
這里還有一個方法也可以解決,但是比較麻煩,就是在JSP頁面上加上一行代碼:(JSP2.0中支持EL表達式,老版本不支持)
~~~
<%@ page isELIgnored ="false" %>
~~~
Web容器默認isELIgnored="false"。
如果設定為真,那么JSP中的表達式被當成字符串處理。
大家可以試一下。
注意:
這里,還遇到一個問題,就是將web.xml修改之后,依然不能識別EL表達式,后來發現是配置出了問題:

注意這里的 Dynamic Web Module一定也要修改為2.5或者更高的版本
有這樣一句話:當然工程的版本、jdk版本、tomcat版本、jar的版本缺一不可 (摘自其他博客)
- 前言
- (一)- 環境搭建
- (二)- 安裝m2eclipse插件
- (三)- 使用Maven構建Web項目
- (四)- 使用Maven構建Web項目-測試
- (五)- 使用Maven構建Struts2項目
- (六)- 構建Hibernate項目
- (七)- 構建Spring項目
- (八)- 構建MyBatis項目
- (九)- 構建SSH項目
- (十) - 階段小結
- Maven深入學習(一)- 坐標
- Maven深入學習(二)- 依賴
- Maven深入學習(三)- 聚合與繼承
- Maven深入學習(四)- 知識總結
- Maven創建的Web項目無法使用EL表達式
- Maven知識點記錄 - profile
- Maven知識點記錄 - repositories
- Maven最佳實踐:版本管理
- Ubuntu上安裝Maven3
- Maven常用命令-創建Java項目
- Maven常用命令-創建Web項目
- Maven中引入本地jar包
- Maven私服(一) - The nexus service was launched, but failed to start.
- Maven私服(二) - Nexus的安裝