maven項目下jsp文件中el表達式失效問題


本來是為了寫個springmvc的小demo,雛形搭建起來后想起來做成maven的好了,就重新建的maven項目,坑就從這里開始了...

maven創建web項目默認使用的是web 2.3版本,web.xml文件頭中也是2.3的版本..說實話之前沒怎么用maven創建過項目,后來覺得maven項目看源碼太方便了才更偏向於用maven的,所以這里也根本沒在意..引入的javax-servlet-api 2.5的版本.然后發現jsp文件中的el表達式都原樣輸出了,看起來el表達式根本沒解析..這就怪了,還好之前有個非maven創建的一模一樣的demo,運行一遍無任何問題..基本鎖定maven問題,而差異化的根源也確定在了web 2.3這個版本上..

然后百度,基本是這樣的答案:2.5之前web.xml文件中的頭定義中,el表達式默認是忽略不解析的,故需要顯示聲明解析el表達式,3種方案:

方案1,在jsp文件頭上添加如下:

<%@ page isELIgnored="false" %>

方案2,在web.xml文件中如下定義:

<jsp-config>
    <jsp-property-group>
        <url-pattern>*.jsp</url-pattern>
        <el-ignored>false</el-ignored>
        <scripting-invalid>true</scripting-invalid>
    </jsp-property-group>
</jsp-config>

方案3,改變web.xml中的頭為2.5之上的版本..

<?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">
 

這3種方案都是確實有效的,我改了web.xml的頭為3.0的版本,再次運行ok了...


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM