Использовать значение из поддерживающего бина в JavaScript - PullRequest
1 голос
/ 01 декабря 2011

Я хочу использовать логическое значение из applicationContext.properties (файл конфигурации Jboss) в моем javascript.

В настоящее время я использую Spring для добавления значения, настроенного в applicationContext.properties, в свой backingbean.Затем я помещаю выводимый текст в мой jsp, например,

<h:outputText id="idValue" styleClass="foo" value="" rendered="#{bean.isRendered}"/>

. В моем JavaScript я пытаюсь выполнить следующие действия:

  jQuery(function(){
     bRedirect = jQuery(".foo").value != undefined;
     ...

. Все это выглядит для меня так ужасно, хотя и работает нормально.Должен быть более умный способ, чем делать то, что я делаю.

Обратите внимание, что я использую JSF1.2 и поэтому должен использовать jQuery вместо $, а также выбирать по уникальному классу (foo), а не по id, что можетбудь плохой практикой.

Заранее спасибо.Альфонс

Ответы [ 2 ]

1 голос
/ 01 декабря 2011

Предполагая, что функция должна вызываться при каждом отображении детали, вы можете встроить в шаблон только свой вызов функции:

<script type="text/javascript">
  myFunction("#{springExpressionForBooleanValue}")
</script>

и определение myFunction находится в файле .js, не обработанном JSF. Я не понимаю, почему вы не можете использовать $ для адресации объекта jQuery в таком сценарии.

Если функция вызывается в результате какого-либо взаимодействия, вы можете сделать ее частью атрибута onclick / oblur и т. Д. Компонента JSF.

Вы также можете встроить всю функцию в тег скрипта, но я думаю, что лучше отделить логику JavaScript от ваших шаблонов.

0 голосов
/ 13 февраля 2012

Спустя несколько недель после того, как я исправил проблему, я столкнулся с t: jsValueSet сегодня.

, который, в моем случае, был бы наилучшим подходящим способом решения вышеуказанной проблемы.Вы можете использовать его следующим образом:

<t:jsValueSet name="test" value="#{myBean.myInfoText}"/>

В вашем javaScript теперь вы можете получить доступ к новой переменной под названием test:

 <script type="text/javascript">
   alert (test);
 </script>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...