0

我正在尝试在 bean 变量中使用 javascript var。这个变量是我需要从我的对象中获取所有值的索引。但它不承认,我该怎么做?或者你能帮我找到一个替代解决方案。谢谢。

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

1 回答 1

0

您似乎误解了 Java 代码 ( ctrDashboard.getObjReporte1.get(indice)[0]) 在服务器机器上运行而 JavaScript 代码 ( function cargarCategorias() { ... }) 在 webbrowser 上下文中在客户端机器上运行。因此,您不能直接互换使用这两种语言。但是,了解JSF 框架的生命周期仍将帮助您实现目标。

因此,您的问题可以通过使用不同的工具来解决。例如,如果您想在页面上的初始 GET 请求时将一组数据预加载到 JS 上下文中,则需要在呈现页面时在 JS 中有一个元素数组:

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

用bean方法为:

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

我建议为此目的使用 Gson 库,但您可以自由选择自己创建 JSON 对象的方式。

使用这种方法,您将valors在 JS 函数中使用 JavaScript 变量进行遍历。

如果您想通过 AJAX 更新您的数组,可以采用类似的方法。

最后值得注意的是,这只是一个技巧,通常用于克服 JSF 应用程序设计中的缺陷。它可能表明您为所提到的工作使用了错误的框架,并且您未能在 JSF 中找到合适的工具,但鉴于目前披露的信息,这是不可能知道的。

于 2013-07-03T15:00:49.180 回答