Este es un hilo bastante viejo, pero es uno con el que me topé cuando tuve el mismo problema. Ya que pensé en una solución yo mismo, la publicaré aquí en caso de que ayude a alguien en el futuro.
El archivo html (o jsp) busca el texto dentro del archivo externo declarado como origen de JavaScript.
Tomcat (o similar) solo interpretan etiquetas JSTL dentro de archivos con la extensión .jsp (o tal vez algunos otros también, pero es irrelevante para esta respuesta).
Por lo tanto, cambiar el nombre de su archivo .js para darle una extensión .jsp (javascript.js a javascript_js.jsp por ejemplo)
agregar esas líneas en la parte superior de 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"%>
y simplemente deje el código sin cambios.
Obviamente, también necesita agregar más prefijos si usa algún otro que no sea c: en el encabezado.
Si usa Eclipse (no sé sobre otros IDEs), supondrá que no es un archivo javascript y perderá el esquema de color para las diferentes palabras clave (var, función, etc.), var name auto completion y sangría automática.
para engañar al IDE, puede agregar
// <script>
como un comentario js, antes de que el código real (después de las declaraciones "<% @"), y
// </script>
al final del archivo, de nuevo como un comentario js.
Me funcionó.
Lea esto: http://balusc.blogspot.com/2009/05/javajspjsf-and-javascript.html Hasta el punto: Java/JSP/JSTL/EL se ejecuta en el servidor web y produce HTML/CSS/JS. El servidor web envía HTML/CSS/JS a webbrowser. Webbrowser recupera HTML/CSS/JS y lo ejecuta. Si Java ha hecho bien su tarea, el webbrowser no debería haber recuperado ninguna línea de código Java/JSP/JSTL/EL. Simplemente porque no lo entiende. – BalusC
que era un buen blog ... – coder247