Как получить доступ к переменным JSP внутри угловых констант js

#java #angularjs #jsp

#java #angularjs #jsp

Вопрос:

у меня есть модуль с константами

angular,module('myconstants',[]).constant('url','<%=MyBean.getUrl("uri-prefix")');

Когда я использую эту константу url, она отображается как строка (‘ <%=MyBean.getUrl("uri-prefix")'); ), но на самом деле она должна вызывать метод MyBean.getURL .

есть предложения?

Ответ №1:

Если вы получаете доступ к переменным в файле JSP, вы можете изменить приведенный ниже код

 angular,module('myconstants',[]).constant('url','<%=MyBean.getUrl("uri-prefix")');

angular,module('myconstants',[]).constant('url','<%=MyBean.getUrl("uri-prefix")%>');
  

Но если код размещен вне файла JSP, вы можете использовать глобальную переменную для доступа к переменным.

вы можете ввести код ниже (в файле JSP)

 <script>
url = '<%=MyBean.getUrl("uri-prefix")%>'
</script>
  

затем вы можете получить доступ (в других файлах javascript)

 angular.module('myconstants',[]).constant('url',url);
  

Комментарии:

1. извините за опечатку в моем вопросе, angular,module('myconstants',[]).constant('url','<%=MyBean.getUrl("uri-prefix")%>'); я использовал то же самое в своем коде, и я получал ошибку, позвольте мне попробовать с глобальными переменными

2. Имейте в виду, что JSP — это технология отображения на стороне сервера, и если ваш контейнер Java-сервлетов настроен правильно, он будет выполняться перед любым вашим Javascript. Другими словами, код JSP часто используется для отображения как HTML, так и Javascript, а затем браузер выполнит Javascript (при условии, что он отображается правильно).