jsf登录注册页面_如何从JSF获取JSON响应?

jsf登录注册页面

jsf登录注册页面

许多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登录注册页面

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值