问题标签 [ajax4jsf]

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 回答
1055 浏览

java - JSF - 动态添加的组件的绑定值

我想使用 JSF 实现类似的东西。(搜索屏幕的一部分)替代文字

单击“ + ”按钮会动态添加越来越多的新行,单击“ - ”按钮会删除该行。问题是将值(那些动态创建的行中的用户输入)绑定到支持模型。

我创建了一个会话范围的支持 bean。部分代码,

+按钮的操作触发 addEmtpyCriteria 方法并重新渲染(使用 a4j)整个部分(带有新行)。

这只是一个样板文件,只要 bean 是会话范围的,一切都可以正常工作。但是将它放在请求范围内更直观。单个搜索是用户发出的单个请求,与用户会话无关。在会话中也有它,强制开发人员从会话中清除/删除支持bean,以便显示新的搜索屏幕。

有没有更好的方法来做到这一点?将它放在会话范围内是否正确?

0 投票
1 回答
4244 浏览

jsf - 使用 AJAX (JSF+richfaces) 重新渲染显示/隐藏技巧仅适用于 a4j:repeat 中的第一条记录

一段时间以来,我一直在从事一个基于 JAVA 的 Web 项目,并且发现这个网站在很多场合都非常有用。
所以,'现在我自己也遇到了一些问题——如果你能帮忙的话,我会很感激的!

好的,事情就是这样——
我正在尝试呈现一个消息列表,每个消息都包含一个消息标题和一个消息正文。我正在研究的技巧是消息正文,只要标题(它是 a4j:commandLink)没有被点击,就应该被隐藏。一旦点击标题 - 应该显示正文。一旦它再次点击 - 隐藏。等等。
这是我在 JSF 方面所做的(为简单起见,省略了一些部分):

注意以下用法:
1. 一个虚拟的“renderFlag”字段(最终应该被隐藏),该值表示是否应该渲染主体。
2. 一个渲染辅助的backing bean(ForumRenderAssistJSF);它的目标是将正确的 renderFlag 值从“true”翻转为“false”,反之亦然。
3. 一个 a4j:region 在触发 ForumRenderAssistJSF.reevaluateRender() 请求时隔离每条消息——以便 bean 可以找到正确的“renderFlag”字段。

至于豆子:

问题是:
这个技巧确实有效——但只适用于列表中的第一条消息!对于其余部分,我看到服务器可以访问正确的 renderFlag 输入文本组件(通过在客户端插入值进行测试),但出于某种原因 - 客户端总是在 AJAX 回复时将其呈现为空白(无内容)!

我尝试深入研究richfaces 教程和手册,对我来说似乎一切都应该如此。所以,我有点迷失在这里,正如我所说 - 非常感谢你的帮助!

谢谢!

0 投票
1 回答
4919 浏览

java - jsf 验证问题 - 对禁用的输入字段应用必填字段验证

我对应用于禁用字段的required=true验证有问题。

我有一个 a4j:commandButton 和两个下拉列表,其中包含表单中的州列表和国家列表。两个下拉列表都应用了 required="true" 验证。默认情况下,使用标签属性 disabled="true" 启用 state 下拉菜单,并禁用 country 下拉菜单,如下所示:

场景# 1:单击 a4j:commandButton 而不在状态下拉列表中选择任何内容。 结果:预期状态下拉列表的必填字段验证错误

现在单击单选按钮(在表单外),状态下拉列表被禁用,并且使用 jquery/javascript 启用国家下拉列表,如下所示:

场景#2:点击 a4j:commandButton 而不选择国家下拉列表中的任何内容。 结果:州和国家/地区下拉列表的必填字段验证错误。但是,预计只会出现国家下拉列表的验证错误。

<h:selectOneMenu>for标签在运行时生成的html代码:

对于使用 jsf 标签属性禁用的下拉菜单:<select disabled="disabled">...</select>

对于使用 jquery 禁用的下拉菜单:<select disabled="">...</select>

有谁知道为什么 jsf 正在验证 jquery 禁用的字段?

0 投票
3 回答
3686 浏览

jsf - 无法定义事件并绑定同时在这个活动上

让我们考虑这个简单的代码:

这将生成以下 HTML 代码:

现在,我只是在我的情况下添加一些onchange东西<h:inputText>

这将生成以下 HTML 代码:

如您所见,不再添加Ajax 代码。就我而言,这是一种非常奇怪的行为。如果事件已在输入字段中定义,为什么<a4j:support>不附加 Ajax 调用?

所以我的问题是如何进行已经定义的<a4j:support>工作?当然,解决方案必须同时运行中定义的 Javascript 代码Ajax 调用。eventinputonchange

换句话说,我想要以下 HTML:


我正在使用 Richfaces 3.3.2 和 JSF 1.2


编辑

当然,我可以在 的属性中移动onchangeJavascript 代码,执行以下操作:onsubmit<a4j:support>

但这是唯一的方法吗??

0 投票
1 回答
783 浏览

java - JSF 使用 A4J 处理浏览器中的服务端异常

A4J 可以处理对服务器的 ajax 调用以异常结束的情况吗?通过句柄,我的意思是它可以向用户展示一个对话框,说明发生了异常吗?A4J 在出现服务器端异常时的默认行为是什么都不做,这有点误导。

0 投票
2 回答
1371 浏览

java - 为什么在 A4J 中默认不将 ignoreDupResponse 设置为 true

在我看来,大多数时候您希望在您的 a4j:support、a4j:commandLink、a4j:commandButton 等组件上将 ignoreDupResponse 设置为 true。在哪种情况下,将 ignoreDupResponse 设置为 false 会很有用?将 ignoreDupResponse 设置为 true 是否有任何性能成本?如果不是,为什么 A4J 默认不将 ignoreDupResponse 设置为 true?

0 投票
1 回答
2151 浏览

validation - h:inputText 不会在验证时重新渲染标签

当我尝试在验证时调用 h:inputText 标签字段值时遇到了一个特殊问题。它仅在我将静态值传递给标签字段时才有效。当我将动态值传递给它时,当该字段的某些验证失败时,它无法呈现标签。

如果最小长度验证失败,则错误消息显示为:

此处未呈现标签:必须至少 3 个字符

但是,当我对标签进行硬编码而不是向其传递动态值时,它会显示有效的验证消息,并在屏幕上打印标签名称。

现在,如果最小长度验证失败,则错误消息显示为:

全名:必须至少 3 个字符

我还查看了 JSF 文档,它读取标签接受表达式语言表达式。那么为什么验证失败后传递的动态值不渲染呢?

另外,我需要动态传递标签(来自资源包),以便为不同的语言添加国家语言功能。这就是迫使我将动态值传递给标签属性而不是静态字段的原因。

谢谢。

0 投票
2 回答
2109 浏览

jsf - 如何在 Jsf 中同步 a4j:jsFunction 和 actionListener

我有以下执行代码,但它给出了一些与 ajax 请求相关的问题。

actionListener 按钮点击调用

A4j:js函数

  1. createNewLog() 函数必须先完成
  2. executeTool() 函数必须在那之后完成。

目前它以相同的方式调用,但 createNewLog() 函数的一半首先执行,然后它转到 executeTool() 函数。在这里它需要一些代码来执行,然后它再次转向 createNewlog() 函数。在此之后执行 createNewLog(),然后再次执行 executeTool()。

0 投票
2 回答
8819 浏览

richfaces - Richfaces:使用 a4j 更改组件的“渲染”属性值:extendedDataTable 中的支持

我正在尝试将richfaces extendedDataTable 与a4j:support 一起使用来更改rich:panel 的“rendered”属性的值,但它不起作用。

这是我的 JSF 页面的一部分,其中包含一个rich:extendedDataTable 和一个rich:panel:

rich:panel 'rendered' 属性的默认值为 false(在后台 bean 中设置)。我想实现的是,选择扩展名图中的行时,它的值更改为真实,以便在GUI中可见。

这是我的支持 bean 的一部分:

在 takeSelection() 方法中,我使用 setShowPane(true) 将 rich:panel 'rendered' 属性的值更改为 true。问题是富裕的:在选择行时,GUI中的面板在GUI中不可见。

我做了另一个简单的测试,通过添加 ah:commandButton 和 a4j:support 将 showPane 设置为 true,如下所示:

在支持 bean 中:

它按预期工作。rich:panel 在单击按钮后在 GUI 中可见。

我在代码中遗漏了什么?

0 投票
1 回答
446 浏览

jsf - 内容没有变化

这就是我想要实现的。我在左侧有导航面板,在右侧有内容面板。当用户单击左侧导航面板上的链接时,会进行 ajax 调用并呈现内容面板。在当前的实施中,内容会根据我点击的链接发生变化。但是我发现执行以下步骤时内容仍然没有改变:

1.点击“显示用户”,显示用户列表
2.点击“添加用户”添加一个用户
3.点击“显示用户”,显示用户列表但内容与步骤 1 中的内容相同。

我确定数据已插入数据库。看起来这个视图被缓存在服务器上。有没有办法解决这个问题?

以下是我的代码和屏幕截图。

谢谢你,

替代文字 替代文字