问题标签 [immediate-attribute]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
4447 浏览

jsf - 为什么将“立即”属性添加到 EditableValueHolders?

最初immediate标志仅用于ActionSource接口。但后来它也被添加到EditableValueHolder界面中。设计决策的原因是什么?

0 投票
6 回答
53194 浏览

validation - JSF 在没有立即=真的情况下跳过所需验证

我有多个表格,其中有必填字段和可选字段。

提交这样的表单,我需要对要执行的 required-attribute 进行验证,这可以正常工作。要取消immediate="true"这样的表单,我使用上的属性p:commandbutton,这使得它的操作在应用请求值阶段发生,如下所述:如何在单击特定按钮时跳过验证?

但是,对于大型表单,我想为用户提供一个保存按钮,以便他可以稍后继续。

为了仅保存当前状态,我还想忽略所需属性的验证。但是,使用immediate="true"不起作用,因为那时我的简单保存方法什么也没保存,因为 JSF 生命周期从未达到“UpdateModelValues”阶段。(根据http://www.javacodegeeks.com/2012/01/jsf-and-immediate-attribute-command.html

那么,如何绕过 required-check 但不跳过一半的生命周期呢?

0 投票
1 回答
4217 浏览

jsf - 调试 JSF 生命周期——每个阶段到底发生了什么

我决定完全深入研究 JSF 2.0,因为我的项目需要深入了解它。我正在阅读JSF Lifecyle Debug,这是一篇关于 JSF 生命周期的精彩文章。在阅读本文时,我有以下困惑。

  1. 如果是初始请求,则会在Restore View Phase空视图中创建并直接Render Response Phase发生。此时没有要保存的状态。那时到底发生了什么render response phase?在运行示例时,我有点困惑。

  2. 文章指出,检索到的输入值是同相设置inputComponent.setSubmittedValue()Apply Request Values。如果验证和转换通过,则值被设置inputComponent.setValue(value)inputComponent.setSubmittedValue(null)运行。在同一点文章指出,现在如果在下一个回发请求中更改了值,则将其与提交的值进行比较,每次回发时始终为空,alue change listener将调用 v。这意味着如果我们甚至不更改值,因为提交的值将为空,那么 valueChangeListener 将始终被调用?我对这个说法感到困惑。有人可以详细说明一下吗?

  3. immediate文章说明了属性的用法。如果immediate在输入组件上设置了属性,则理想情况下Process Validation Phase会跳过,但所有转换和验证都发生在Apply Request Values. 我的观点是,仍然在进行转换和验证时,跳过第三阶段有什么好处?

  4. 检索值一词是什么意思?

  5. 我想知道,如果让我们说视图上有五个字段。JSF 是否列出了这些值的一些集合并Apply Request Values逐个Process Validations阶段迭代它们?

  6. 在本文的最后一点,它说明了何时使用immediate属性。根据我的理解,如果在输入组件和命令组件中都设置了立即属性,它将跳过从应用请求值到调用应用程序的阶段以获取任何没有immediate. 那么最后一条语句是什么意思是登录表单中的“忘记密码”按钮,其中包含必填且立即的用户名字段和必填但非立即的密码字段。

我知道这些是非常基本的混淆,但明确这些主题肯定有助于提高 JSF 知识。

0 投票
0 回答
205 浏览

jsf - JSF获取即时属性值java程序

谁能告诉我如何从 Java 代码中获取即时属性值?我尝试了以下两种方式的属性:我的项目在 jsf 1.2

我可以在属性映射中看到“testAttribute”,但看不到“立即”属性。

getAttributes() 返回一个没有“立即”作为条目的属性映射。请提出另一种读取立即属性值的方法。

0 投票
0 回答
117 浏览

jsf - JSF 生命周期阶段执行 with immediate=true

我正在关注这个以了解 JSF 生命周期。我想检查一下我对 JSFimmediate="true"属性的理解是否正确,如下所述。我用简单的 JSF 表单和一个 bean 尝试了这些案例。

案例 1:commandButton 上的 Immediate="true"

它直接调用应用程序,即执行saveData动作方法,无需任何表单处理。此活动在应用请求值生命周期阶段完成。跳过流程验证更新模型值、调用应用程序等阶段。

案例 2:inputText 上的 Immediate="true"

当任何字段为空时,将不会提交表单。这意味着对具有immediate="true"立即属性集的字段和另一个字段进行验证,这两个值都在模型中更新。有什么区别,如何理解?验证是否在应用请求值阶段针对具有立即属性的输入字段优先进行,并且在流程验证阶段是否针对没有立即属性的第二个输入字段进行验证?

案例 3:inputText 和 commandButton 上的 Immediate="true"

表单也使用空值提交,这意味着它没有验证,操作方法被执行,我看到模型值在提交期间输入时也没有更新。因此,尽管在Apply Request Values阶段调用了 action 方法,但所有阶段(如Process ValidationsUpdate model values 、invoke application )都被跳过。

我不太确定我的理解是否正确。

0 投票
0 回答
289 浏览

ajax - UI 重复项的删除按钮无法正常工作

在我的一个项目中,我们使用 jsf/primefaces 进行开发,并且有特定要求不要对模糊或更改输入字段的事件进行任何 ajax 调用。

我们需要显示记录列表。用户还可以添加或删除记录。

我正在使用下面的 xhtml 代码

单击“添加新”按钮时,我们正在处理整个 UI 表单。这个按钮工作正常。如果用户单击“删除记录”按钮,我不想触发验证,因为即使输入了不正确的值,用户也应该能够删除记录。我使用了 immediate="true" 来跳过验证,但在这种情况下,所有输入字段都会重置为 NULL 或其他未删除记录的初始值(例如:如果我输入三个记录并且第二个记录被删除,那么第三个记录的值用 null 更新。)

我在使用 process="@this" 时尝试删除 immediate="true" 然后我也面临同样的问题。

我在 UI 重复之外创建了一个测试输入字段。单击删除按钮不会更改此字段的值。所以似乎问题在于只有输入字段在 UI:repeat 内。

非常感谢对此的任何帮助或指示。