在鼠标悬停时渲染jsf元素

时间:2013-02-27 07:04:13

标签: jsf jsf-2

我有一个<h:panelGrid>和一个h:commandLink(链接基本上是一个图像)。现在我想要鼠标悬停事件,然后链接应该是渲染(render='true')和鼠标输出事件,它被删除render='false'
但是我无法创建逻辑,我如何使用这些事件来执行此操作,因为我使用的方法是设置bean true和{{的值1}}关于此事件 这是我的代码

false


<h:form> <h:panelGrid mouseover='** we cannot call a bean method here which changes the bean value **'> This is the Div On which I want to apply mouseover event </h:panelGrid> <h:commandLink id="btn" render={renderBean.renderLink}> <h:graphicImage url="image.jpg"/> </h:commandLink> </h:form> renderLink属性的默认值为false。 现在我想知道如何在鼠标悬停事件中将其值更改为renderBean是否可能? OR JSF中的任何其他解决方案w.r.t此要求

1 个答案:

答案 0 :(得分:3)

您必须记住,在JSF中,该页面将首先由Web服务器中的JSF引擎在服务器端进行处理。那时所有JSF标签都将转换为它们的HTML等价物。 render属性告诉服务器端引擎是否在a元素的位置输出HTML <h:commandLink>(锚点)链接。

您正在寻找的行为,即响应鼠标事件,是客户端功能。它发生在浏览器中,而不是Web服务器上,因此不涉及JSF。解决方案是在JavaScript中处理鼠标事件,而不是JSF。您通常会在名为display:none的id上设置(或删除)CSS属性btn(不幸的是,它稍微复杂一些,因为JSF会稍微破坏元素ID)。 StackOverflow上有很多帖子涉及如何处理JavaScript中的客户端事件。例如,使用jQuery是一种非常常见的方法。

我建议您开始浏览我们最好的JSF资源和长期StackOverflow用户BalusC的博客:http://balusc.blogspot.com

要学到很多东西,首先去那里(并在SO上搜索他的帖子),你会有一个良好的开端。

祝你好运。