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

时间:2013-07-16 15:41:53

标签: jquery ajax jsf jsf-2

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

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

用于以下过程:

  1. 用户输入地址并点击commandButton调用JS
  2. JS使用谷歌地图检索地理数据并将其发送到服务器(我正考虑使用上述代码)
  3. 服务器响应从数据库发送一些接近的位置
  4. JS再次使用谷歌地图检索确切距离并将其发送到服务器
  5. 服务器将客户端重定向到包含结果的下一页
  6. 有一种情况可能需要对使用过的inputText进行失败的验证:在第2点,服务器将地理数据评定为无效。

1 个答案:

答案 0 :(得分:4)

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

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

另见: