如何向JSF应用程序发送手动jQuery Ajax请求?
我正在使用jQuery进行POST
请求,这似乎成功了。 但是我如何在服务器端使用它并修改响应呢?
我是否需要另一个servlet,因为Faces Servlet不是为了解决这个问题而设计的?
$.ajax({type:'POST', data:{"status":status}, success: function(response) { alert("Qapla'"); }});
它用于以下过程:
- 用户输入地址并命中调用JS的
commandButton
- JS使用谷歌地图检索地理数据并将其发送到服务器(我考虑使用上面的代码)
- 服务器响应从数据库发送一些接近的位置
- JS再次使用谷歌地图检索确切的距离并将它们发送到服务器
- 服务器将客户端重定向到包含结果的下一页
有一种情况可能需要对使用过的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的需求是什么?