需要在“客户端”JSF上进行说明

时间:2014-11-13 00:00:36

标签: java jsf java-ee jsf-2

在过去的两个小时里,我一直在寻找有关JSF如何运作的深刻见解。我读了很多很好的解释,但每个故事只是关于SERVER上的JSF生命周期,但我对客户端感到好奇。说得更好,我很好奇客户端浏览器在用户与应用程序交互时如何创建适当的http请求。顺便说一下这里的JSF noobie,所以据我所知,JSF是服务器端的MVC框架,OK。

  • 当客户在浏览器中输入网址时,例如somedomain.com/landingpage,服务器端框架会在某些" building"步骤从JSF页面生成html。很清楚。因此,最终用户将使用带有可选css和/或javascript的html页面。
  • 然后用户可以进行一些互动,比如填写表格并提交。当他/她提交表单时,浏览器正在使用数据向服务器创建POST请求。这里的请求是由浏览器做出的,因为html表单的实现/规范。服务器获取此请求,烘焙某些内容并以视图响应(例如,我不关心服务器部分)
  • 另一个例子:我们有一个按钮,我想要这个按钮在页面上生成一些动态内容,比如点击按钮应该在页面上创建两个新的div。因此,在浏览器中,单击按钮即可创建单击事件。我很好奇这将触发服务器请求用新内容回送新页面/视图的内容? (我知道AJAX可以完成这项工作,但我在这里要求默认行为。)

我问过我的一个朋友,他说,在JSF方面,我们在该按钮上提供了一个actionListener,在actionListener中我们定义了一个bean方法,该方法在click事件时被触发执行。那又清楚了。但是什么会在客户端创建请求?一些隐藏的JavaScript代码?或者是什么?

所以一般来说,我不了解JSF的客户端请求触发方法。我很好奇他们。

感谢。

2 个答案:

答案 0 :(得分:0)

我认为最简单的方法是准备一些简单的例子并查看它。甚至可以使用教程中的一些示例。

是的,在客户端,JSF生成了JavaScript代码。这个JS将准备新的请求。它是标准提交按钮的一种包装。即使你的JSF中有标记。由于onclick事件中有函数准备并发送新请求,因此生成了标记但是href属性被忽略了。因此,在客户端,有一个从JSF生成的JavaScript代码。

如果您不在JSF中的任何适当位置使用任何标记(例如:http://www.mkyong.com/jsf2/jsf-2-0-ajax-hello-world-example/)整个文档将按照您的说法重新生成。

答案 1 :(得分:0)

  

所以一般来说,我不了解JSF的客户端请求触发   方法。我很好奇他们。

所有请求均通过 HTTP 通信/协议系统发出,并由客户端/浏览器自动管理。对于您的信息, HTTP 本身会封装在 TCP 中。在客户端生成的代码纯粹是 HTML CSS JavaScript <的混合/ strong>,标准网络浏览器可以理解。无论您使用哪种服务器端框架,客户端都没有 Java 代码。