0

我正在开发一个应用程序,我正在考虑以 JSON 格式将信息发送回浏览器,并让 java 脚本根据信息呈现页面。以同样的方式,我想以 JSON 格式将更新从浏览器推送到托管 bean。我们可以在 JSF + Primefaces 中实现这一点吗?

我们考虑使用 JSON 的原因是限制来回传递的数据量。

4

2 回答 2

1

我可以推荐使用 Gson Gson 用户指南

这是一个关于如何从服务器创建/发送/解析 json 的简短示例

在你的 bean 中做这样的事情

Gson gson = new Gson();
myJsonString = gson.toJson(someObjectOrListOfObjects);

在 xhtml 中

<h:inputHidden id="my_json_data" value="#{myBean.someObjectOrListOfObjects}" />

在你的 js 文件中

var data = $('input[id$="my_json_data"]').val();
data = jQuery.parseJSON(data); //to parse it, use dev tools/fire bug to add data variable to watch and observe it
于 2012-08-30T06:59:12.723 回答
0

与其滚动你自己的传递 JSON 而不是 XML/HTML 的 JSF 实现,我会建议一些其他方法来最小化正在发送的数据。

使对话框、选项卡视图、数据表等动态化。

PrimeFaces 可以选择使某些元素动态化。这意味着它们会在用户请求这些内容时加载。这可以提高页面加载量。

使用较小的表格

我看到很多用户只使用一个<h:form>,因为如果所有内容都在一个表单中,您就不能忘记在需要一个表单的元素周围放置一个表单。这是完全错误的,并导致在表单中发布所有内容,而不仅仅是页面的相关部分。在需要的地方使用表格,并使用诸如萤火虫之类的东西仔细检查正在发送的内容。

使用客户端验证

使用客户端验证来防止用户发送错误的输入。这样就不会(永远)来回发送错误的数据。一个很好的副作用是用户会收到一个快速的“响应”。注意:这并不意味着您可以放弃服务器端验证。出于安全目的,需要服务器端验证。

于 2012-08-26T08:14:43.543 回答