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

jsf - 带有选项卡式浏览的 JSF 会话范围 bean

我们有以下问题...

应用环境:

JSF、Richfaces、a4J

考虑有以下情况:

  • 用户登录系统
  • 用户导航到一个新页面,该页面由一个包含 a4j 组件的 a4j 表单组成,用户填写表单但不提交。
  • 用户打开一个新选项卡并打开相同的 URL 并用新数据填写新表单
  • 用户返回到他的第一个选项卡并提交信息(注意:所有 bean 都定义为会话范围)

结果:

提交的信息是来自第二个选项卡但从第一个选项卡提交的信息,只要将 bean 定义为会话范围,这是预期的。

问题:

我们需要获取请求范围的行为(即:尽管 bean 被定义为会话范围,但将新选项卡作为新请求处理)。

笔记:

当将 bean 范围定义为请求范围时,来自同一表单中各个组件的部分 Ajax 响应会重置其他组件,因为它们尚未提交。

有什么建议么 ?

--

非常感谢

0 投票
3 回答
10261 浏览

ajax - RichFaces:AJAX 操作成功时显示通知“弹出”

我们目前正在开发一个基于 Java EE 5、JSF、Facelets 和 RichFaces 的 B2B 网上商店。到目前为止,该技术确实运行良好,但现在我面临一个小问题,我无法弄清楚如何解决:

产品以表格形式列出,通过单击行尾的小图标,可以将每个项目添加到购物篮中。添加产品是通过 AJAX 完成的,以避免页面完全重新加载。h:dataTable只需使用 a和 ana4j:commandLink调用将所选产品添加到购物篮的操作方法,就可以毫无问题地工作。即使在侧栏中始终可见的篮子总数的重新渲染也可以正常工作。

由于 AJAX 的性质,没有可见的指示(除了旁边的更改总数)操作成功或至少已完成。现在我想添加一个小“弹出”框,当 AJAX 操作完成时,它在添加图标旁边可见,表明该项目已添加到购物篮中。此框应在几秒钟后自动消失。

这是我认为应该起作用的(popup_message 和 popup_content css-classes 使框浮动在其标记所在的位置之上):

不幸的是,它根本不显示该框。如果我event将“出现”效果更改为onclick它几乎可以按预期工作。单击图标时立即显示,并在 AJAX 操作完成 3 秒后消失。但我不希望它在单击后立即出现,因为表明该项目已添加到购物篮是错误的,而实际上操作还没有开始。当我想指出一些错误或想在框中包含一些项目特定信息时,这变得更加重要,这些信息仅在添加项目后可用。

那么任何想法如何做到这一点?为什么为同一个事件添加两个效果不起作用?

(我已经看过RichFaces 现场演示中的效果示例。这些示例的工作原理几乎相同,只是它们添加了第二个效果并明确说明了for属性。但即使这对我也不起作用。)

更新:我已经尝试rich:toolTip为此目的使用,这实际上似乎非常灵活。但无论我做什么,我都无法将任何内容附加到 的“未完成”(我也尝试过“完成”)事件a4j:commandLink,除了一个效果......似乎有一些关于该事件的错误/未记录的行为. 我刚刚发现了这个错误报告:RF-3427

0 投票
4 回答
2073 浏览

jsf - 为什么 EL 给了我错误的对象作为括号之间的参数?

情况如下:

在 a4j:form 中的 rich:dataTable 中,我创建了一个 a4j:commandLink 来选择值并使用 jboss el 操作语法将其传递给 bean

这没有问题。

但是,如果我重新渲染表单以使用 ajax 调用过滤数据表,当我选择值时,它会给我错误的结果:选择的索引,但过滤前的数据。

有任何想法吗?

感谢 Zack 在 5 分钟内为我提供了正确的解决方案。

我认为在括号之间的操作中传递参数更优雅,但是,嘿:这行得通。:)

十分感谢。

ps 我也在编辑标题。

0 投票
2 回答
8325 浏览

java - 以 a4j 形式有条件地要求 jsf 验证

我在 jsf/a4j 中使用条件评估表达式时遇到了一点问题

这是我的代码

布尔复选框有条件地启用/禁用验证。

这不起作用: a4j:commandButton 只是跳过验证。

谢谢。

0 投票
4 回答
2934 浏览

ajax - ajax4jsf 死了吗?还有哪些其他适用于 JSF 的 AJAX 库?

我目前正在为我正在处理的项目使用JBoss RichFaces JSF 组件库。它总体上工作得很好,尤其是 ajax4jsf (A4J) 提供的 AJAX 支持,但我发现几乎每个组件都使用了通常非常不灵活的表格标记,而且 RichFaces 的所有这些“皮肤”东西都很烦人。如果有一些组件只提供功能并且只提供最少的标记/样式,那就太好了。本来我打算用 ICEfaces,但是效果也不是很好,而且还带来了很多预定义的样式,所以现在 RichFaces 似乎是最好的选择。

现在我认为开发一个干净的标签库会很好,它提供了一些在 RichFaces、ICEfaces 或 Tomahawk 中找到的有用组件(当然不是全部!),它们不使用任何预定义样式并生成可以轻松设置样式的标记CSS。

我想使用 ajax4jsf 库来支持 AJAX,因为我认为它工作得很好,并且可以通过 facelets 无缝集成到标准 JSF 中。但似乎由于它已经转移到 JBoss,它不再作为独立库提供。你只能下载我不想要的整个 RichFaces 包。

ajax4jsf (A4J) 项目死了吗?如果是,有哪些替代方案?

0 投票
3 回答
15045 浏览

jsf - 传递动作

有一些方法可以在<rich:modalPanel>. 我想用“是”和“否”按钮编写简单的弹出窗口,并且我想在不同的页面中重用这个弹出窗口,这就是为什么我需要在按下“是”按钮时调用不同的操作。有一种方法可以通过<rich:modalPanel>with传递一些值<a4j:actionparam>

但是有什么方法可以通过行动吗?

0 投票
4 回答
27612 浏览

jboss - 如何在调用 a4j 链接后重新渲染 RichFaces 组件

希望有人可以帮助我解决在 a4j 链接/按钮执行操作后重新渲染 RichFaces 组件时遇到的一个小障碍。我的问题的简化版本如下:

我有 2 个输出组件显示一个文本值,这些值是根据我的管理器类中的某个值呈现的:

我还有 2 个 a4j 链接,它们调用一些操作,然后重新渲染上述 outputText 组件:

我期望发生的是,当我单击“设置打开”按钮时,“打开”输出文本组件将取消隐藏,而“关闭输出文本”组件将显示。但是,这不会发生。

有没有人知道为什么会这样,以及在 a4j 组件操作完成后我如何重新渲染这些组件?

0 投票
1 回答
2060 浏览

jsf - JSF 循环重新渲染

希望标题不要太神秘......

我们遇到的问题是我们从一些 Java 列表中生成了一堆输入控件(等)h:inputOneMenuh:inputText

工作正常,除了要求这些输入动态验证。再一次不是那么难,除了因为在循环中生成了控件,唯一可能的 reRender 操作基本上是整个表单或a4j:outputPanel围绕每个循环迭代,这基本上是同一件事。

现在上述两种解决方案在技术上是可行的,但它们具有重新渲染所有页面控件的令人讨厌的副作用,这使得页面感觉非常抽搐和笨拙。我们希望阻止这种情况的发生,理想情况下,唯一重新渲染的控件是发送 ajax 更新/验证的控件。

基本上这是我们的页面代码:

我遗漏了一些仅根据项目呈现不同控件的内容。

如您所见,我们当前正在使用该a4j:outputPanel解决方案,因此每次更新任何循环生成的控件时,都会重新渲染所有控件。

如果有人有任何想法,请提前感谢。

0 投票
0 回答
1886 浏览

java - a4j:commandButtons 是否存在“重新渲染”的问题?

下面的代码已被简化为最简单的可能失败的事情。基本上,当有人要求确认某项操作时,我会强制他们登录,然后允许他们确认该操作。这一切都是用ajax完成的。第一个表单提交正确发生,但第二个表单无法运行所需的 ActionListener。第二种形式是发布到服务器。

0 投票
2 回答
7486 浏览

jsf - 拦截 a4j:commandButton 请求

我正在使用 A4J、Richfaces 开发 Web 应用程序。我的要求之一是,我需要检查用户在尝试离开页面时是否更改了表单中的任何值。

我在页面中有保存和取消按钮。我正在使用a4j:command按钮来取消功能。单击取消按钮应该执行以下操作

  1. 检查用户是否修改了表单中的任何内容(我正在使用 javascript 执行此操作,如果用户更改了任何值,则有一个标志)
  2. 当用户更改表单值时显示确认框(javascript 确认值“您真的要放弃更改 - 是否”)
  3. 如果用户说是,则使用 AJAX 提交表单(使用 A4J)

我的 a4j 命令按钮代码是这样的

这里的问题是,在使用 usinga4j:commandButton时,我无法调用中间 javascript 函数(该函数检查用户是否更新了任何值并显示确认框)然后使用 ajax 提交请求。我查看了 JSF 生成的代码,代码就像(不是确切的,而是语法)

问题是当我点击按钮时,它只是调用checkIsPageChanged()而不是调用AJAX.submit()

任何解决方法都会对我有所帮助。

先感谢您。