Разрешить переменные EL в Javascript с помощью FacesServlet - PullRequest
3 голосов
/ 06 июля 2010

Я выводил в файл весь свой код Javascript внутри и приложение, и для разрешения всех переменных EL внутри кода я пытался использовать решение BalusC 2, предложенное в качестве ответа на этот вопрос SO .

Я пытаюсь использовать сервлет Faces для обработки файлов JS по запросу.Проблема заключается в том, что когда я настроил это, файл JS не найден, и я не могу догадаться, где проблема.Это мой web.xml

<mime-mapping>
<extension>js</extension>
<mime-type>application/x-javascript</mime-type>
</mime-mapping>
 <servlet>
  <servlet-name>Faces Servlet</servlet-name>
  <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>*.xhtml</url-pattern>
 </servlet-mapping>
  <servlet-mapping>
  <servlet-name>Faces Servlet</servlet-name>
  <url-pattern>/js/myapp-functions.js</url-pattern>
 </servlet-mapping>

Если я пытаюсь получить файл через http://localhost:8080/myappname/js/myapp-functions.js, я получаю ошибку 404.Файл там (проверен дважды).Если я удаляю сопоставление для файла JS, я могу получить файл в обычном режиме (но, как указано, переменные EL не разрешаются).

Есть предложения?Заранее спасибо.

1 Ответ

1 голос
/ 06 июля 2010

Расширение файла фактическое должно соответствовать javax.faces.DEFAULT_SUFFIX, по умолчанию *.xhtml. Обратите внимание, что вам нужно обернуть всю страницу внутри <script></script>, иначе SAX-анализатор Facelets будет жаловаться на плохо отформатированный документ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...