java - Richfaces:带有 ContextMenu 的链接式文本

标签 java jsf richfaces onclick contextmenu

我想使用 Richfaces 在左键单击出现链接的文本(蓝色文本、下划线和鼠标悬停光标)时呈现上下文菜单。因此,想象一个链接,单击该链接会显示一个上下文菜单。请注意,我不关心文本是否确实是一个链接,我只是希望它作为链接出现。因此,即使是普通文本也可以,我会使用 CSS 将其显示为链接。

我有以下条件:

  • 上下文菜单必须出现在客户端,无需发出请求。
  • 上下文菜单必须使用数据表内的 rich:componentControl(这些“链接”)出现,因此必须重复使用相同的 rich:contextMenu

我仍然没有找到令人满意的解决方案,因为我尝试过的每一种方法都给我带来了问题:

  1. 如果我使用 h:outputText(这将是理想的),我无法在其上附加 rich:componentControl(我猜是因为它无法触发 onclick 事件) .
  2. 如果我使用 a4j:commandLink,虽然我可以附加一个 rich:componentControl,但它会发出服务器请求。我试图添加 onclick="return false;" 来阻止请求,但是 Richfaces 添加了由 rich:componentControl 生成的 JS在onclick里面,导致这段代码根本就达不到,当然上下文菜单也根本不出现。

有什么办法吗?请记住,没有要求!

最佳答案

你可以试试

<rich:componentControl disableDefault="true" ...>

根据带有此参数的文档,componentControl 应该添加 return false; 本身。

但请注意相应的错误:RF-5607

如果文档存在谎言,您可以使用 html anchor 。 This answer展示了如何使用 componentControl 创建链接而不刷新页面:

<h:outputLink value="#" id="link" onclick="return false;">
  <h:outputText value="Link text"/> 
  <rich:componentControl attachTo="link" for="panel" operation="show" event="onclick"/>
</h:outputLink>

onclick="return false;" 阻止 anchor 将页面滚动到单击的链接。

关于java - Richfaces:带有 ContextMenu 的链接式文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4919446/

相关文章:

java - 将 Jquery 事件附加到 JSF 数据表

jsf - 在不单击文本的情况下单击 MenuItem

sorting - 评估 Richfaces 排序中 Facelets 组件的表达

java - 如何将 SOAP XML 解码为 Java 对象

java - 从 java 执行命令时使用 bash 函数

java - 使用登录表单例份验证时 PrimeFaces 不呈现

带选项卡式浏览的 JSF session 范围 bean

java - 如何更改tomcat的上下文路径?

java - Scalding如何将用户函数传递到远程MapReduce节点

java - JSF:如何显示 'waiting' 消息?