问题标签 [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 投票
4 回答
4647 浏览

jsf - jsf immediate="true" 关于绑定到会话 bean

我有一个进入添加页面的列表页面。添加页面有一个名称文本框,其值绑定到会话范围的 bean

列表页面有一个添加按钮,该按钮通过操作方法进入添加页面。此操作方法清除名称文本框绑定到的对象。

我还在添加页面上有一个取消按钮,该按钮绑定到一个操作方法,该方法再次清除名称文本框所绑定的值。

如果没有设置为立即,这一切正常。

但是,如果我将取消按钮设置为立即,如果我在名称字段中输入值,然后单击取消,则触发操作方法并清除支持 bean 中的对象并转到列表页面。如果我然后单击添加,则操作方法会再次清除对象(忽略它是否是最佳方法),然后转到添加页面。我现在希望添加页面的名称文本框为空,但不是吗?!当然,由于添加按钮不是立即的,所以值应该重新绑定并为空?

下面是列表页面上添加按钮的相关 XHTML

下面是添加页面上输入框的相关 XHTML(myBean 是会话范围的),然后是添加页面上的取消按钮:

0 投票
3 回答
2048 浏览

ajax - JSF 2.0:在 AJAX 调用后,cookie 不会立即持久化,需要 HTTP 请求

执行 Ajax 调用以从购物车中删除商品 -removeOrder()调用方法

UIremoveOrder()调用(JSF&Primefaces):

后端removeOrder()调用(托管 bean)

这里cookies是持久化的,这个方法的输出和预期的一样,cookie数组包含空值的cookies,没关系:

这里出现了问题,方法 emptyCartNotifier() 看到非空的“previous” Cookies数组

在执行任何 HTTP 请求之后,该 Cookie 数组就真正被清除了。

如我所见,冲突是:
在 AJAX 调用清除 cookie 之后,该 cookieHttpServletRequest包含非空 cookie,直到执行新的 HTTP 请求(用户提交按钮或通过链接访问)。

当网络应用程序结合 AJAX 和非 AJAX 调用时,是否有即时 cookie 管理的解决方案或良好做法?

谢谢你。

0 投票
3 回答
7316 浏览

jsf - ADFfaces Ignores Immediate if the required input has partialTrigger the submiting component

我有一个selectOneChoicewithautoSubmit=trueimmediate=true跳过验证,如果selectOneChoice设置为某个值,我想从 inputText 中删除所需的属性,所以inputText将具有partialTrigger的 id selectOneChoice,但是当我从selectOneChoice) 仍然只为需要更新的组件触发所需的验证(因为存在 partialTriggers),其他必需的组件不会触发其验证。
任何解决方法?

0 投票
1 回答
1689 浏览

validation - 未提交 JSF 2.0 值

我正在努力让我的 bean 使用新的页面值进行更新。我的页面上有两个提交按钮,我根据页面处于何种模式的布尔值切换显示哪个按钮。当我的页面仅处于更新状态(无验证)时,我显示具有即时=“真”的提交按钮. 当页面处于进程模式(验证)时,我会显示没有立即 =“true”的提交按钮。我遇到的问题是当我处于更新模式(无验证)时,输入字段中的值没有在 bean 中设置。在这种模式下,我要做的就是按原样保存页面并退出。不需要验证,因为该页面上的信息还没有准备好处理或“真正使用”,如果你愿意的话。也就是说,如果我的页面处于进程模式(验证),那么一切都会按预期工作。值已提交并保存。

我还没有发布任何代码,因为我正在尝试做的事情并没有什么特别之处。我只是有一个指向简单 getter/setter 的值绑定。我的 bean 在 @ViewScope 中。

我尝试使用 BalusC 在他出色的博客文章中的示例:debug-jsf-lifecycle。在单击带有 immediate="true" 的提交按钮时,将 immediate="true" 放在输入字段上没有影响。尽管如此,我理解它的方式是 UICommand 上的 immediate=”true” 告诉应用程序是否跳过验证。将其放在输入字段上只会使验证更快地发生。我错过了什么吗?

有任何想法吗?对此的任何和所有帮助都非常感谢!

应用程序细节:
JSF 2.0.3
Tomcat 6.0.14

0 投票
0 回答
1136 浏览

jsf - 当 autoSubmit="true" immediate="true" 时的 valueChangeListener 行为

我正在使用特立尼达。对于单选按钮和下拉菜单,我使用valueChangeListenerwithautoSubmit="true"来更新页面的一部分。但它会显示验证(如果有),所以我过去常常immediate="true"绕过验证。它有效,valueChangeListener但当我在使用迭代器时将下拉菜单放入循环中时不起作用。

谁能解释valueChangeListenerwithautoSubmit和的行为immediate

0 投票
3 回答
457 浏览

jsf - Jsf 总是从 ArrayList 中删除最后一个元素

我有ArrayList一个支持 bean 和他在 JSF 页面中的渲染c:forEach。当我ArrayList通过索引删除元素时,jsf,无论索引是什么,总是删除最后一个元素。为什么会发生这种情况?

JSF 中的删除按钮是:

所以我使用即时属性。我认为问题是因为立即跳过 JSF 生命周期中的应用请求阶段。有可能吗?

如果是,那么在这种情况下如何运行应用请求阶段?

0 投票
1 回答
6010 浏览

ajax - 在处理 AJAXified JSF 2.0 组件时,是否应该永远不使用 immediate="true" ?

immediate="true"处理 AJAXified JSF 2.0 组件时不应该使用吗?

这个例子可能是:

如果我想在 JSF 2.0 页面上实现一个“取消”按钮,如果用户点击“取消”,则不应该运行任何验证,immediate="true"如果它是一个 ajaxified 组件,我应该在组件上设置,还是应该指定表单上的任何组件都不应该被处理?如果是这样,使用组件的 AJAXified 特性而不是使用“旧方式”来实现此功能的方法是immediate="true"什么?

0 投票
2 回答
7066 浏览

jsf - JSF 数据表:添加和删除行清除行值

我有 ah:datatable 显示行列表,每行的字段都是输入字段。

我在表格前渲染了一个“添加行”按钮,并在表格的每一行上渲染了一个“删除行”按钮。

烘焙 bean 是 viewScoped,按钮从 backing bean 中的 java 列表中添加/删除元素,然后返回相同的视图。

我在按钮中将立即属性设置为“true”,以便在添加或删除行时不验证输入字段。

一切正常,但有一件事:输入文件的值被清除。我认为视图保留了值,因为 bean 是 viewScoped。

如何在不触发验证并保留用户已在表单中键入的值的情况下实现添加/删除行?

我的观点:

我的支持豆:

更新->我的解决方案:

如果有人感兴趣,我会在这里写下我的解决方案。

问题是我使用 immediate="true" 跳过验证,但这也会跳过 update_model_values,这样用户在表单中输入的值在单击添加/删除按钮并重新重新渲染页面后会丢失.

当我使用“JSR-303 bean 验证”时,我的解决方案是使用 f:validateBean 跳过验证来启用/禁用它们。根据我单击的按钮,如果我想要执行验证,我启用 bean 验证(例如在“提交”按钮中),如果我想跳过它们,我禁用 bean 验证(如在添加/删除行按钮)。但无论如何 update_model_values 总是执行,所以值不会丢失。

这是视图:

支持bean:

0 投票
1 回答
51900 浏览

jsf - 试图理解 immediate="true" 在不应该的时候跳过输入

就在我以为我立刻明白了……*叹息*

考虑以下 JSF 页面:

而这个支持bean:

从我读到的关于立即的所有内容中,我期望以下内容:

  • 当尝试在没有为输入字段提供值的情况下执行 foo 时,该操作永远不会执行,因为在processValidationsPhase发生错误期间,导致在此阶段之后直接重新渲染页面并显示错误消息。的值didSomething保持不变。(这按预期工作)

  • 当尝试在不为输入字段提供值的情况下执行 bar 时,applyRequestValuesPhase由于 immediate 属性,该操作将在 during 期间执行。变量didSomething已更改。(这按预期工作)

关于接下来会发生什么,此描述指出:

“空返回值(作为操作方法的结果)导致处理正常继续,即验证非立即组件然后执行更新模型(如果没有发生验证错误)。对于返回 void 的操作侦听器方法,如果不需要正常流程,则有必要调用 facesContext.renderResponse();。”

由此我认为处理会继续正常进行(因为我的操作方法既不返回结果也不返回 force renderResponse()),从而导致相同的验证错误。唯一的区别是它发生设置之后didSomething但是,这不会发生。相反,感觉网站仍然跳过了所有剩余的阶段,没有触摸输入字段。它重新渲染而没有错误消息。

有人可以向我解释我对它是如何工作的理解有问题吗?

0 投票
1 回答
2239 浏览

jsf - 立即行动后单选按钮被重置(转换器和 ui:repeat 神秘地涉及)

我遇到了一个场景,即当视图从立即操作返回时,一组单选按钮被重置为未选择状态,尽管实际值被正确处理。刷新视图也会显示正确的值。奇怪的是,该行为仅在组件使用转换器且不在内部时才会发生,ui:repeat其缩小到以下示例:

JSF 页面

支持豆

转换器

所以我们有:

  • 一组单选按钮,由 的支持 bean 列表构建SelectItem(String, String),保存到字符串。无需转换器。
  • 一组单选按钮,由 的支持 bean 列表构建SelectItem(boolean, String),保存为布尔值。提供了一个转换器来将布尔值映射到一些单词(“real”/“unreal”) - 只是为了替换标准转换器(“true”/“false”)
  • 提交按钮 + 输出以测试值是否设置正确。
  • 一个带有一些即时操作的按钮,除了改变 JSF 生命周期之外什么都不做。

有了这个,人们可以玩耍并观察以下内容:

  • 每当页面从即时操作返回时,带有转换器的收音机 ui:repeat显示任何值,这意味着:没有选择收音机
  • 但是,该值实际上在提交期间设置正确。刷新页面将导致正确设置收音机。
  • 内部相同的无线电组工作正常,没有转换器的无线电组也可以 ui:repeat

根据更好的知识进行测试,我检查了转换器无线电放在 a<c:foreach>中而不是ui:repeat显示相同的错误(正如我所预料的那样,因为它只是构建树然后消失),并且将一些标准转换器附加到字符串 -收音机不会让它们坏掉。关于 BalusC 的评论,将 bean 更改为 ViewScoped 不会影响问题 - 只有这样,刷新才会为您提供一个空白的默认初始化页面。

在这里,我的知识已经走到了尽头。我真的不知道如何进一步减少这种情况或为什么它会这样。所以...嗯...想法有人吗?

我从服务器人那里得到的规范:Mojarra JSF API Implementation 2.0.5-FCS、JSF 2.0 和 Facelets,服务器是 Weblogic 11g 10.3