如何将Freemarker模板中的数据转换为GWT代码?

时间:2010-10-04 15:59:47

标签: web-applications gwt freemarker

我有一个使用Stripes和Freemarker的webapp设置;部分内容我还编写了一些GWT内容,我正在尝试找出从actionBean获取信息到GWT代码的最佳方法。目前我在模板中执行此操作:

<script>
  var params = {
    nick : "${actionBean.nick}",
    logout: "${actionBean.logout}"
  }
</script>

然后我在进入GWT模块时执行Dictionary.getDictionary("params")。它工作正常,但我觉得我可以做得更好。建议?

1 个答案:

答案 0 :(得分:0)

“将所有内容编译成一堆静态.js”GWT-policy不允许修改js本身。它允许 - 使用强名称技术 - 在浏览器中缓存所有GWT代码。

因此,如果任何动态数据必须进入GWT小部件,它必须来自外部。而你的小部件将不得不去做。因此,声明这个词典似乎是正确的方法(我在工作中这样做了)。

一个选项是使用gwt-exporter生成一个JavaScript友好的GWT小部件(我的意思是,一个Javascript类,具有类和方法的可读名称)。然后你的javascript可以注入值本身,使GWT小部件不知道它的上下文。类似的东西:

var x = new MyExportedWidget();
x.addTo(somePanel);
x.setProperty(value);

但这似乎有点过分......