gpt4 book ai didi

java - FacesMessages 和 rich :effect?

转载 作者:行者123 更新时间:2023-11-29 04:02:08 25 4
gpt4 key购买 nike

我希望能够使用 JSF/Seam/RichFaces 进行 Ajax 调用,并使用相关的 h:messages 组件更新页面。这没有问题。我能够执行适当的重新渲染。但是,我也希望能够利用 rich:effect 使它更漂亮一些。理想情况下,我希望能够让消息淡入然后在用户单击它们时消失。但是,到目前为止,我一直无法使它正常工作。

有没有人让这样的场景起作用?有比我更了解 JSF/Seam 的人有什么好的建议吗?提前致谢!

最佳答案

虽然我不关心 rich:effect,但我确实这样做了。

我使用 jQuery。这是个人喜好,但我发现它比使用 rich:effect(基于 Scriptaculous)更容易和直接。值得快速浏览一下 jQuery Effects documentation .

一个例子:

将 jquery 添加到您的页面(richfaces 附带):

<a:loadScript src="resource://jquery.js"/>

为方便起见,将 jQuery 分配给 $j(将其添加到您的 javascript 中):

$j = jQuery.noConflict();

消息部分:

<a:outputPanel id="messagetextPanel" ajaxRendered="true" layout="block" style="z-index:100; display:none;">
<s:div styleClass="messagetext" rendered="#{not empty facesContext.maximumSeverity}">
<h:messages infoClass="infomessage" errorClass="errormessage" warnClass="warningmessage" layout="list" />
<s:div styleClass="messageClose">
<a onclick="hideMessages();">#{messages['messages.close']}</a>
</s:div>
</s:div>
</a:outputPanel>

一些用于隐藏和显示 div 的 javascript:

function hideMessages() {
$j("div#messagetextPanel").fadeOut("slow");
}
function showMessages() {
$j("div#messagetextPanel").fadeIn("fast");
}

现在您只需要找出在完成调用时调用 showMessages() 的最佳方法(例如,在您的 a4j:commandButton 等上使用 oncomplete)。

我个人更喜欢不影响 div 的显示,这样我就可以使用 ajaxRendered 来处理所有事情。您可以通过将第一行替换为:

<a:outputPanel id="messagetextPanel" ajaxRendered="true" layout="block" style="z-index:100; display: #{empty facesContext.maximumSeverity ? 'none' : 'block'};">

这样一来,我的按钮/链接/支持上就不需要任何代码,当我的后端代码决定创建一个时,FacesMessages 将始终显示。

关于java - FacesMessages 和 rich :effect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2760832/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com