возможно ли рассматривать файл .js как файл .jsp с использованием конфигурации web.xml?
Да:
<servlet>
<servlet-name>scriptjsp</servlet-name>
<jsp-file>/script.jsp</jsp-file>
</servlet>
<servlet-mapping>
<servlet-name>scriptjsp</servlet-name>
<url-pattern>/script.js</url-pattern>
</servlet-mapping>
Но в этом нет никакого реального преимущества, поскольку файлы JavaScript не обязательно должны иметь URL-адреса, заканчивающиеся на «.js». Что определяет, является ли файл файлом JavaScript, так это тип носителя MIME, к которому он относится. Вы можете установить это из JSP используя:
<%@ page contentType="text/javascript" %>
наверху. Тогда вы можете связаться непосредственно с:
<script type="text/javascript" src="/script.jsp"></script>
(Кроме того: в современных браузерах скрипты, связанные с тегом , будут работать даже без правильно установленного Content-Type, но, вероятно, на это нельзя полагаться.)
Я хочу использовать тег jstl fmt в javascript
Это, вероятно, не очень хорошая идея. Тег fmt имеет дело с экранированием HTML для символов, но вам нужен экранирование литерала строки JavaScript, например, для символов кавычки с обратной косой чертой. JSTL не предоставляет эту возможность. Вы получите неожиданно экранированные символы «& amp;», которые будут отображаться в ваших строках JavaScript, а использование апострофов или двойных кавычек в сообщениях нарушит весь сценарий.
Кроме того, обслуживание часто включаемых сценариев из JSP может снизить производительность и кеширование.
Я бы предложил независимую систему поиска языков в JavaScript. Например, включите внешний языковой сценарий:
<script type="text/javascript" src="/script/lang/en.js"></script>
(изменив 'en' в соответствии с тем языком, который вы хотите), и в этом файле определите поиск следующим образом:
var msg= {
messageName: 'Message in English',
...
};
Затем найдите msg.messageName
для каждой локализуемой строки в скрипте.