如何向JSF应用程序发送手动jQuery Ajax请求?

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

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

它用于以下过程:

  1. 用户输入地址并命中调用JS的commandButton
  2. JS使用谷歌地图检索地理数据并将其发送到服务器(我考虑使用上面的代码)
  3. 服务器响应从数据库发送一些接近的位置
  4. JS再次使用谷歌地图检索确切的距离并将它们发送到服务器
  5. 服务器将客户端重定向到包含结果的下一页

有一种情况可能需要对使用过的inputText进行失败的validation:在第2点,服务器将地理数据评定为无效。

如果通过通常的JSF发送ajax POST意味着( UICommand组件, jsf.ajax.request()等,在等的味道中)真的不是一个选项由于某种原因未在您的问题中指定,那么您确实最好创建一个单独的servlet,甚至是JAX-RS或JAX-WS Web服务,监听这些请求并返回例如XML,JSON等.JSF是一个基于HTML表单的MVC框架不是Web服务框架。

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

也可以看看:

  • 如何使用Servlets和Ajax?
  • 如何从JSF生成JSON响应?
  • 如何使用本机JavaScript在HTML DOM事件上调用JSF托管bean?
  • 当用户可以通过CSS,HTML,JavaScript,jQuery实现UI时,JSF的需求是什么?