Đây là một chủ đề khá cũ, nhưng đó là một chuỗi tôi gặp phải khi tôi gặp sự cố tương tự. Kể từ khi tôi nghĩ về một giải pháp bản thân mình, tôi sẽ đăng nó ở đây trong trường hợp nó giúp ai đó trong tương lai.
Tệp html (hoặc jsp) tìm văn bản bên trong tệp bên ngoài được khai báo dưới dạng nguồn javascript.
Tomcat (hoặc tương tự) chỉ diễn giải các thẻ JSTL trong các tệp có phần mở rộng .jsp (hoặc có thể một số tiện ích mở rộng khác nữa, nhưng không liên quan đến câu trả lời này).
Vì vậy, đổi tên tập tin .js của bạn để cung cấp cho nó một phần mở rộng .jsp (javascript.js để javascript_js.jsp ví dụ)
Thêm những dòng ở trên cùng của javascript_js.jsp:
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
và chỉ để mã không thay đổi.
Rõ ràng, bạn cũng cần thêm các tiền tố khác nếu bạn sử dụng một số tiền tố khác với c: trong tiêu đề.
Nếu bạn sử dụng Eclipse (không biết về các IDE khác), nó sẽ giả định nó không phải là tệp javascript và bạn mất bảng màu cho các từ khóa khác nhau (var, chức năng vv ..) và thụt lề tự động.
Để đánh lừa IDE, bạn có thể thêm
// <script>
như một bình luận js, trước khi mã thực tế (sau khi tuyên bố "<% @"), và
// </script>
ở cuối của tệp, một lần nữa dưới dạng nhận xét js.
Nó làm việc cho tôi.
Đọc điều này: http://balusc.blogspot.com/2009/05/javajspjsf-and-javascript.html Đến thời điểm này: Java/JSP/JSTL/EL chạy trên máy chủ web và tạo HTML/CSS/JS. Webserver gửi HTML/CSS/JS tới webbrowser. Webbrowser truy xuất HTML/CSS/JS và thực thi nó. Nếu Java đã hoàn thành nhiệm vụ của mình, trình duyệt web không nên lấy bất kỳ dòng mã Java/JSP/JSTL/EL nào. Đơn giản là vì nó không hiểu nó. – BalusC
đó là một blog hay ... – coder247