1. 程式人生 > >eclipse下maven專案中EL表示式失效的問題

eclipse下maven專案中EL表示式失效的問題

背景:
今天用eclipse建立了一個maven專案,從之前專案中拷過來一個主頁,部署到伺服器中然後在網頁中開啟的時候,所有的css樣式以及js外掛等等都失效了,谷歌檢查顯示,寫絕對路徑${pageContext.request.contextPath}的時候,沒有識別這個路徑,也就是el表示式沒有識別。
原因:
eclipse建立的maven專案中的web.xml檔案版本太低了(我這邊生成的版本是2.3的)

<!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> </web-app>

2.5之前web.xml檔案中的頭定義中,el表示式預設是忽略不解析的,故需要顯示宣告解析el表示式
解決辦法:
改變web.xml配置檔案的版本就可以了。

<?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_2_5.xsd" version="2.5">
<display-name>Archetype Created Web Application</display-name> </web-app>

這樣問題就解決了。
另外:我特意新建了一個web專案,發現並沒有出現類似問題,所以可能只有在eclipse下建立maven專案的時候會出現el表示式失效的問題