1

我正在POST使用似乎成功的 jQuery 执行 -request。但是我如何在服务器端使用它并修改响应?
我是否需要另一个 servlet,因为 Faces Servlet 不是为处理这个问题而设计的?

$.ajax({type:'POST', data:{"status":status}, success: function(response) {
    alert("Qapla'");
}});

它用于以下过程:

  1. 用户输入地址并点击commandButton调用 JS
  2. JS 使用谷歌地图检索地理数据并将其发送到服务器(我正在考虑使用上面的代码)
  3. 服务器响应从数据库发送一些靠近的地方
  4. JS 再次使用谷歌地图检索精确距离并将它们发送到服务器
  5. 服务器将客户端重定向到具有结果的下一页

在一种情况下,inputText可能需要对已使用的验证失败:在第 2 点,服务器将地理数据评为无效。

4

1 回答 1

4

如果通过通常的 JSF 方式发送 ajax POST(UICommand组件、jsf.ajax.request()等、以 、、等为风格)<h:commandButton>由于某种原因在您的问题中未指定确实不是一个选项,那么您确实最好创建一个单独的 servlet 甚至 JAX -RS 或 JAX-WS Web 服务监听这些请求并返回例如 XML、JSON 等。JSF 是基于 HTML 表单的 MVC 框架而不是 Web 服务框架。<p:remoteCommand><o:commandScript>

您只需要考虑在之后操作 JSF 组件的 HTML 表示时正确处理 JSF 视图状态。例如,当您使用自定义 JS/ajax 来启用由不涉及/通知 JSF 生成的禁用 HTML 按钮时<h:commandButton>,它不会在 JSF 组件状态下显示为启用,并且永远不会调用其操作。

也可以看看:

于 2013-07-16T15:46:35.560 回答