JSF - 在生命周期的另一个问题

今天,我想知道在JSF生命周期的某些功能。 先说:

1 -阶段2:应用请求值-在这个阶段,视图中的每个组件将搜索其值的要求,并设置新的值给他们

嗯,好漂亮。 所以,在视图将由于以前豆类参数来建立。 之后,有一个局部视图,与请求的值生成的。 (右?后来,在3°的相位,它们将比较)。 但是,例如,如果在请求列表中的值是创建该最后一个视图的期间缺席? 值将为空?

2 -阶段5:调用应用程序-一旦请求的所有值已成功设置为支持bean在应用请求值阶段要进行的操作事件排队。 在我们的例子中提交按钮操作方法。

这是不明确的。 在这一刻,我有(对豆)的值从前一阶段更新(如果验证和应用请求不会失败)。 好了,现在该怎么办? 这意味着在应用请求值阶段排队的动作事件将被处理 ? 这意味着,例如,如果动作是提交处理结束? 这就是为什么一个Ajax调用,如果在2°的相位不渲染,会失败? 或者它失败?

3 -阶段6:显示响应-在这个阶段,组件树将呈现给客户。

这意味着,在服务器上的看法是通过使用更新的bean值更新? 并且,在此之后,HTML代码从该视图创建? 或者只是它使得HTML代码并保存视图状态?

希望你能帮助我:)

--------------解决方案-------------

阶段2:应用请求值-在这个阶段,视图中的每个组件将搜索其值的要求,并设置新的值给他们

嗯,好漂亮。 所以,在视图将由于以前豆类参数来建立。 之后,有一个局部视图,与请求的值生成的。 (右?后来,在3°的相位,它们将比较)。 但是,例如,如果在请求列表中的值是创建该最后一个视图的期间缺席? 值将为空?

基本上,以下是发生在幕后(这里, inputUIInputrequestHttpServletRequest ):

if (input.isRendered()) {
String value = request.getParameter(input.getClientId());
if (value != null) {
input.setSubmittedValue(value);
}
}

于是,他们将不变,如果没有请求参数。 他们将不会被设置null ,只是不停地默认。


阶段5:调用应用程序-一旦请求的所有值已成功设置为支持bean在应用请求值阶段要进行的操作事件排队。 在我们的例子中提交按钮操作方法。

这是不明确的。 在这一刻,我有(对豆)的值从前一阶段更新(如果验证和应用请求不会失败)。 好了,现在该怎么办? 这意味着在应用请求值阶段排队的动作事件将被处理? 这意味着,例如,如果动作是提交处理结束? 这就是为什么一个Ajax调用,如果在2°的相位不渲染,会失败? 或者它失败?

在第二阶段基本上下面也会发生(在这里, commandUICommand requestHttpServletRequestActionEventActionEvent ):

if (command.isRendered()) {
String value = request.getParameter(command.getClientId());
if (value != null) {
command.queueEvent(new ActionEvent(command)); // Queue for INVOKE_ACTION.
}
}

然后,在调用应用程序阶段,而排队等待的特定阶段的所有事件将被调用。


阶段6:显示响应-在这个阶段,组件树将呈现给客户。

这意味着,在服务器上的看法是通过使用更新的bean值更新? 并且,在此之后,HTML代码从该视图创建? 或者只是它使得HTML代码并保存视图状态?

在此阶段,JSF遍历组件树和所有组件将被编码(将调用Renderer的所有组件,默认情况下HTML渲染器)。 在编码过程中,该值将只是从模型获得。 该视图本身将不会被更新基本上

facesContext.getViewRoot().encodeAll();

1 -阶段2:应用请求值

这个阶段无关的支持bean。 在这里,我们只处理请求的参数,并试图在以“将它们链接”到一个组件。 在应用请求相位,需要这些HTTP请求参数被转换并验证它们被注入到实际bean之前。

2 -阶段5:调用应用程序

在JSF中,是ActionEvent通过的ActionListeners处理。 点击按钮时,一个ActionEvent上升,排队在稍后阶段进行处理。 默认的ActionListener由JSF拾取此ActionEvent,并在过程中的应用阶段处理它提供的。

默认的ActionListener以这样一种方式,它评估EL表达式实现,并使用结果将其传递到navigationlistener。 那么,你认为理所当然的(按下一个按钮执行的action属性并转发EL表达式到另一页)实际上是内部处理使用一个ActionListener。

3 -阶段6:显示响应-

一个JSF视图组件树和所有值绑定的内部表示。 实际的HTML表示通过的ViewHandler处理。

http://palkonyves.blogspot.com.br/2013/08/demistifying-jsf-21-lifecycle-mojarra.html:另一个关于JSF生命周期外观极好的文章可以在这里找到

分类:JSF 时间:2015-03-15 人气:0
分享到:

相关文章

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 1.083 (s). 10 q(s)