2014-11-21 6 views
1

Мне нужно визуализировать некоторые данные, и я хочу создать массив javascript на основе этих данных.Создать переменную javascript с thymeleaf

Я хочу, чтобы ввести свое имя и данные переменной из кода Java

/*[+ 
      var [+ [[${data.getDataName}]] = [[${data.getData()}]]; 
+]*/ 

Однако имя и данные отображаются в скобках. Есть ли прогулка? Может быть, вы можете порекомендовать лучший html-шаблон, который лучше работает с javascript?

Прямо сейчас у меня есть жесткий код html и javascript в моем коде, и я хочу избавиться от него.

+0

Почему вы хотите создать массив javascript с вашими данными из java? Вы можете работать с этими данными (из java) непосредственно в тимелеафе. –

+0

Потому что мне нужно построить эти данные с помощью flotJS. Есть ли способ сделать это напрямую в java? –

+0

ОК, теперь я понимаю. У нас есть аналогичное требование, но мы обрабатываем это с помощью запроса ajax. Извините EDIT: Одно, что вы можете сделать, - это вызвать метод javascript в этом том, что вы опубликовали. –

ответ

0

Возможно решить это сейчас, но я дам ему выстрелили в любом случае ...

я не уверен, я понимаю [+ синтаксис, но кроме этого:

Вы, вероятно, дон 't хотите динамически назвать переменные, если вы не пишете свою собственную фреймворк или что-то еще. Это будет труднее для кого-то еще читать. Кроме того, явное определение имен переменных обычно не рассматривается как «жесткое кодирование». Тем не менее, если вы хотите, чтобы написать свою собственную мини-рамку, вы можете попробовать что-то сумасшедшее, как следующее:

var data = {}; 
var name = /*[[${data.getDataName()}]]*/ ''; 
var value = /*[[${data.getData()}]]*/ ''; 

data[name] = value; 

Однако, вы можете также инициализировать ряд пара так: [['name1', 'value1'],['name2', 'value2'], ['name3', 'value3']]. Возможно, это то, что вы хотите. Вероятно, самый простой способ сделать это - определить его на Java (как List<Pair<String>> или что-то в этом роде. Или вы можете использовать List вместо Pair, если у вас его нет и не хочется его делать.

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