jsf 2 -在鼠标悬停时渲染jsf元素



我有一个<h:panelGrid>h:commandLink(链接基本上是一个图像)。现在我想在鼠标悬停事件上,然后链接应该呈现(render='true'),在鼠标悬停事件上,它被删除了render='false' .
但是我无法创建逻辑,我怎么能用这些事件做到这一点,因为我使用的方法是在这个事件上设置bean truefalse的值。
这是我的代码

<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>


renderBeanrenderLink属性默认值为false。现在我想知道的方式,我怎么能改变它的值为true在鼠标悬停事件?可能吗?OR JSF中的其他解决方案

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

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

我建议您首先看看我们最好的JSF资源之一和长期StackOverflow用户BalusC的博客:http://balusc.blogspot.com。

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

好运。

相关内容

  • 没有找到相关文章

最新更新