许多JavaScript小部件都希望使用JSON格式的数据和选项。 如今,选择一个很酷的小部件并将其包装在一个复合组件中确实很容易。 但是第一个问题是如何发送AJAX请求并以正确的JSON格式接收响应。 JSF用户经常会提出这个问题 。 您需要的只是一个XHTML facelet,如下所示:

<f:view encoding="UTF-8" contentType="text/html"xmlns="http://www.w3.org/1999/xhtml"xmlns:h="http://xmlns.jcp.org/jsf/html"xmlns:f="http://xmlns.jcp.org/jsf/core"><h:outputText value="#{stationView.getClosestStations(param.longitude, param.latitude)}" escape="false"/>
</f:view>

请考虑在h:outputText中使用contentType =“ text / html”(应用程序/ json在这里不起作用)并转义=“ false”。 Bean StationView中的getClosestStations()方法为特殊Java对象列表生成JSON输出。 我建议使用Gson库 ,以便将任何Java对象序列化为JSON。 简短示例:

String[] strings = {"abc", "def", "ghi"};
Gson gson = new Gson();
gson.toJson(strings);  ==> prints ["abc", "def", "ghi"]

上面的XHTML文件位于Web上下文下。 说,在路径/rest/stations.xhtml下。 JavaScript代码中的Ajax调用应如下所示:

$.ajax({url: requestContextPath + '/rest/stations.xhtml',type: "GET",data: {"longitude": x,"latitude": y},dataType: "json",success: function (data) {$.each(data, function (i, station) {...});},error: function () {...}
});

有关$ .ajax的更多信息,请参考jQuery文档 。 注意:如果省略dataType:“ json”,则必须手动解析JSON字符串。

success: function (data) {$.each($.parseJSON(data), function (i, station) {...});
}

响应是一个纯JSON字符串(没有HTML标记),如下所示:

[{"latitude":46.947045,"longitude":7.443922,"distanz":110,"name":"Bern, Bundesplatz"},{....},...]

需要更多有关JSF中JSON响应的示例吗? 在我的下一篇文章中,我可能会解释如何在不编写太多代码的情况下实现出色的自动完成组件。

翻译自: https://www.javacodegeeks.com/2014/07/how-to-get-json-response-from-jsf.html

如何从JSF获取JSON响应?相关推荐

  1. jsf按钮响应事件_如何从JSF获取JSON响应?

    jsf按钮响应事件 许多JavaScript小部件都希望使用JSON格式的数据和选项. 如今,选择一个很酷的小部件并将其包装在一个复合组件中确实很容易. 但是第一个问题是如何发送AJAX请求并以正确的 ...

  2. c语言 json数组长度,js 获取json数组里面数组的长度

    作为一个前端页面开发者第一次处理json数据,遇到了'js 获取json数组里面数组的长度'?竟然不知道 json没有.length属性(真是要嘲讽下自己),少壮不努力老大徒伤悲啊!以前都是去寻求男朋 ...

  3. 响应信息有json和html,获取HTML响应而不是Json响应

    我正在获取HTML响应而不是JSON响应.我正在使用以下代码,我收到的HTML响应为bf.readLine().以下代码中是否存在任何问题或此API问题? String uri = "htt ...

  4. Android Volley 库通过网络获取 JSON 数据

    本文内容 什么是 Volley 库 Volley 能做什么 Volley 架构 环境 演示 Volley 库通过网络获取 JSON 数据 参考资料 Android 关于网络操作一般都会介绍 HttpC ...

  5. AJAX 跨域请求 - JSONP获取JSON数据

    Asynchronous JavaScript and XML (Ajax ) 是驱动新一代 Web 站点(流行术语为 Web 2.0 站点)的关键技术.Ajax 允许在不干扰 Web 应用程序的显示 ...

  6. 为什么Google会优先使用while(1); 他们的JSON响应?

    为什么Google会优先使用while(1); 他们的(私有)JSON响应? 例如,这是在Google日历中打开和关闭日历时的响应: while(1);[['u',[['smsSentFlag','f ...

  7. java $.getjson_JQuery 获取json数据$.getJSON方法的实例代码

    jQuery系列 第八章 jQuery框架Ajax模块 第八章 jQuery框架Ajax模块 8.1 jQuery框架中的Ajax简介 Ajax技术的核心是XMLHTTPRequest对象,该对象是A ...

  8. JavaScript中循环遍历JSON响应!

    我们在前端开发过程中,通过服务器获取数据的时候服务器返回的数据通常为JSON格式,今天小千就来教大家如何利用JavaScript解析服务器的响应获取我们想要的数据. 该过程通常包括两个步骤:将数据解码 ...

  9. 使用fastjson 获取json字符串中的数组,再转化为java集合对象

    最近,使用layui做一个导出功能,尽管有插件提供导出,但是呢,由于数据中有状态是数字,例如1显示是已支付,但是导出时也希望这样显示,但是导出的还是1: lz没有找到改下这个插件的办法,只能利用服务端 ...

最新文章

  1. python表示当前目录_从Python脚本获取当前目录的父项
  2. 阿里云PolarDB发布重大更新 支持Oracle等数据库一键迁移上云
  3. vue设置textarea最大字数_【Vue 学习】 Vue常用系统指令
  4. blog error #include stream.h
  5. 前端传值后端接收不到_关于前端传参数,后台接收的问题
  6. unity animator 动画 结束后保持位移_Unity动画系统详解9:Target Matching是什么?
  7. 部署Hadoop集群
  8. JS(JQUERY)操作框架页面全集
  9. python webqq机器人_使用Python的Tornado框架实现一个简单的WebQQ机器人
  10. matlab 打开文件bin
  11. 比原链CEO朗豫:DeFi让用户真正理解区块链,意义重大
  12. 音频输出设备是如何决定的
  13. 项目排期工具OmniPlan实用指南
  14. mysql 多表 结构相同 查询
  15. 在线任意进制转换工具
  16. 飞思卡尔K22调试FXOS8700加速度和电子罗盘(2)
  17. 【第12题】一个整数,它加上 100 后是一个完全平方数,再加上 168 又是一个完全平方数
  18. 以太坊学习6--智能合约的在线IDE工具
  19. 长尾关键词是什么意思?
  20. Android 消息推送OnePush

热门文章

  1. android之微信分享文本
  2. linux跑循环脚本占内存,Linux下实现脚本监测特定进程占用内存情况
  3. 廖雪峰python教程整理笔记_廖雪峰python教程笔记(一)
  4. idea新建module 后 mapper老是说mapper和xml没有绑定
  5. 百度地图描绘轨迹html,百度地图API 绘制轨迹历史
  6. 机器人点焊枪接线_用于焊接机器人焊枪工具点及工件坐标系标定装置及方法与流程...
  7. python 列表生成表格_【转】Python 列表生成式
  8. 网络——获取Web数
  9. 双指针:88. 合并两个有序数组
  10. java登录界面命令_Java命令行界面(第5部分):JewelCli