JSF:初始请求和回发请求?

2022-09-02 00:50:35

请看一下JSF中的以下代码行

<h:inputText id="name" value="#{customer.name}" />

引用 java.sun.com:

对于包含此标记的页面的初始请求,JavaServer Faces 实现在生命周期的呈现响应阶段评估表达式。在此阶段,表达式仅从客户 Bean 访问 name 的值,就像在即时评估中所做的那样。#{customer.name}

对于回发请求,JavaServer Faces 实现在生命周期的不同阶段评估表达式,在此期间,从请求中检索值、验证值并将其传播到客户 Bean。

我不确定我是否理解初始请求回发请求。客户端浏览器是否向 Web 服务器发出两个不同的请求?


答案 1

初始请求仅传递还原视图和呈现响应阶段,而回发请求在所有阶段(应用请求值、验证阶段等)下处理。

初始请求是通过单击链接并在地址栏中粘贴 URL 来创建的,而回发请求是通过单击提交按钮或任何发布请求来发布表单来创建的。


答案 2

初始请求是浏览器为了显示带有标记的页面而执行的请求。当浏览器发布部分或全部页面值,然后将最初发布的同一页面返回到客户端时,将发生回发。例如,这可能是由于验证错误的结果而发生的。${customer.name}

了解正在呈现的当前视图是否是回发的结果非常有用。例如,您可能希望在回发结果中显示一条消息,但不是每次刷新页面时都显示。


推荐