我有一个使用Stripes和Freemarker的webapp设置;部分内容我还编写了一些GWT内容,我正在尝试找出从actionBean
获取信息到GWT代码的最佳方法。目前我在模板中执行此操作:
<script>
var params = {
nick : "${actionBean.nick}",
logout: "${actionBean.logout}"
}
</script>
然后我在进入GWT模块时执行Dictionary.getDictionary("params")
。它工作正常,但我觉得我可以做得更好。建议?
答案 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);
但这似乎有点过分......