2013-07-03 3 views
0

Я пытаюсь использовать переменную javascript в переменной bean-компонента. Эта переменная является индексом, который мне нужен, чтобы получить все значения из моего объекта. Но он не признает, как я могу это сделать? Или вы можете помочь мне с альтернативным решением. Благодарю.с использованием переменной javascript в bean jsf

function cargarCategorias() { 
    while (indice <= 5){ 
     var valor = "#{ctrDashboard.objReporte1.get(indice)[0]}"; 
     categorias.push(valor); 
    } 
} 

ответ

0

Вы, кажется, не понимают, что Java-код (ctrDashboard.getObjReporte1.get(indice)[0]) работает на сервере и код JavaScript (function cargarCategorias() { ... }) работает на клиентском компьютере в контексте веб-браузера. Таким образом, вы не можете напрямую использовать эти два языка взаимозаменяемо. Но тем не менее, понимание жизненного цикла структуры JSF поможет вам достичь своей цели.

Таким образом, вашу проблему можно решить, используя различные инструменты. Например, если вы хотите предварительно загрузить набор данных в контексте JS при первоначальном запросе GET на странице, вам необходимо иметь массив элементов в JS, пока страница визуализируется:

<script type="text/javascript"> 
    var valors = #{bean.valorsJson}; 
</script> 

методом боба как:

public String getValorsJson() { 
    return new Gson.toJson(valorList); 
} 

Я предложил использовать библиотеку Gson для этой цели, но вы вольны выбрать способ создания JSON опротестовать себя.

С помощью этого подхода вы используете переменную JavaScript valors для обхода в вашей JS-функции.

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

Последнее, что стоит отметить, это просто трюк, который обычно используется для преодоления недостатка в вашем дизайне приложения JSF. Это может указывать на то, что вы используете неправильную структуру для упомянутой работы и что вам не удалось найти подходящий инструмент в JSF, но это невозможно узнать, учитывая раскрытую до сих пор информацию.

+0

Отличный, теперь я отправляю весь объект на javascript, это решение было очень полезно, спасибо вам большое. – user2544909

+0

Добро пожаловать! – skuntsel

Смежные вопросы