Tôi vừa gặp vấn đề tương tự này và đã dành mãi mãi cố gắng tìm ra điều gì sai.
Tôi đã phát triển rất nhiều ứng dụng web từ đầu. Tại sao đột nhiên là người này không hợp tác?
Một khác biệt là lần này tôi đã sử dụng nguyên mẫu webapp của maven để tạo cấu trúc dự án. Nó đã tạo một tệp web.xml trông giống như sau:
<!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>
Khi tôi nhận ra đó là vấn đề của mình, tôi chắc chắn tôi đã có câu trả lời. Vì vậy, tôi đã sao chép một trong số 2.5 tiêu đề web.xml của tôi, được xây dựng lại và triển khai lại. Không có điếu xì gà. Không thể tin rằng đó không phải là vấn đề. Làm sạch dự án, khởi động lại tomcat. Không.
Câu trả lời của RHSeeger đã dẫn tôi thử đặt trong trang <% @ isELIgnored = "false"%>. Điều đó đã giải quyết được vấn đề. Nhưng tôi vẫn muốn biết tại sao el bắt đầu bị bỏ qua để bắt đầu.
Tôi đã tìm ra el bị bỏ qua vì có lỗi gì đó với web.xml của tôi, vì vậy tôi đã kiểm tra chặt chẽ nó so với web.xml của webapp mà tôi biết đã làm việc tốt. Không có sự khác biệt đáng chú ý.
Sau đó, tôi đã xóa trang <% @ khỏi JSP của mình và triển khai lại, giả sử el sẽ không được đánh giá lại, nhưng nhiều điều khiến tôi ngạc nhiên, el đã được đánh giá tốt!
Sau đó, việc xác định đó phải là một số vấn đề về bộ nhớ đệm, tôi hủy các thay đổi của mình đối với web.xml để tạo lại sự cố. Tôi đã triển khai lại, nhưng vẫn el được đánh giá đúng, ngay cả với web.xml xấu. Sau đó, tôi làm sạch toàn bộ dự án của tôi (tôi đang sử dụng một triển khai phát nổ), thổi bay thư mục đã phát nổ và tạo lại nó. Sau đó tôi khởi động lại tomcat. Tuy nhiên, el xuất hiện để được đánh giá một cách chính xác mặc dù web.xml xấu.
Cuối cùng điều đó nảy sinh với tôi.Tôi chỉ đơn giản là thêm một không gian cho một số nơi trong JSP, đóng gói lại nó, và làm mới trang. Chơi lô tô! Bây giờ el đã không được đánh giá.
Vì vậy, sự cố là với tệp web.xml. Nó sẽ phức tạp hơn nữa bởi thực tế là các JSP không được biên dịch lại trừ khi chúng đã thay đổi. Không chắc chắn nếu tomcat sử dụng một khoản MD5 để quyết định xem các JSP cần được biên dịch lại hay không. Một khả năng khác là tôi đang sử dụng gạch, mà tôi biết có một cơ chế bộ nhớ đệm, nhưng tôi sẽ không mong đợi rằng để tồn tại một khởi động lại tomcat.
Dù sao, trừ khi bạn sửa đổi JSP của mình SAU KHI sửa chữa tệp web.xml, tất cả các phiên cược sẽ tắt là liệu EL có bắt đầu hoạt động trở lại hay không. Hy vọng điều này sẽ giúp người khác đau đầu. Tôi cũng quan tâm nếu có ai có thể cho tôi biết liệu đó là tomcat không biên dịch lại các JSP hoặc lát bộ nhớ đệm trong đầu ra của JSP. Tôi khá chắc chắn đó là biên dịch lại, bởi vì tại thời gian biên dịch là khi JSP cần phải tìm ra những gì để làm với các biểu thức el $ {}, phải không? Gạch không thể thực sự lưu trữ những gì được thay thế thành các biểu thức el, nếu không tất cả các loại vấn đề sẽ phát sinh.
On Tomcat 5.5, có hai lý do có thể (chỉ?): Giản đồ không hợp lệ trong web.xml, hoặc el- bỏ qua tùy chọn cấu hình. –
Tôi (và những người khác) đã có một trang làm việc tốt và, sau khi thay đổi một cái gì đó trên trang (ví dụ, thêm một số html), nó chỉ dừng lại đánh giá các biểu thức EL. Lời giải thích duy nhất tôi có thể đưa ra là một lỗi trong Tomcat ở đâu đó, nhưng nó không đáng để đào sâu vào quá trình kể từ khi cho phép nó theo cách thủ công (thông qua đoạn mã trên) giải quyết được vấn đề. – RHSeeger
Nếu bạn đã tạo webapp của mình với nguyên mẫu maven, câu trả lời chính xác là: http://stackoverflow.com/a/25372735/20654 – OscarRyz