如何在基于JSF的应用程序中指定JSON url到js方法



我正在实现一个多选自动完成文本框(类似于Stackoverflow用于tags输入),使用fcbkComplete。为了实现,我需要将JSON对象从JSF传输到Jquery函数。(需要指定JSON url作为fcbkComplete的参数)。

           $("select0").fcbkcomplete({
                   json_url: "fetched.txt"
           });

我使用JSF 2.0和Primefaces 3.0M3。如果有人能告诉我如何在基于JSF的应用程序中将JSON url指定为js方法,我将不胜感激。

谢谢

最简单的方法是让JSF托管bean getter返回所需的JSON作为String,并将其分配给视图模板中内联的JS变量:

<script>
    var json = #{bean.json};
    // ...
</script>

(注意变量值没有引号!)例如,使用var json = '#{bean.json}';将不工作)

如果有必要,你可以使用Google Gson在Java对象和JSON字符串之间轻松转换。如果有必要,您可以将<script>id放在<h:panelGroup>中,以便在ajax请求时重新呈现它。如果有必要,你可以把它包装在一个复合组件中。

确实,这是非常简单的,PrimeFaces 可能有更好的方法来接近它,但我不知道任何。


作为一种完全不同的替代方案,当数据不依赖于JSF上下文中的任何内容时(除了可能有一些会话作用域的托管bean,它无论如何都可以作为HttpSession属性使用),您还可以创建一个简单的servlet,它在jQuery.ajax()调用时完成这项工作。您可以在以下回答中找到几个示例:如何使用servlet和Ajax?

相关内容

  • 没有找到相关文章

最新更新