Richfaces:与ContextMenu类似链接的文本

Mar*_*kis 5 java jsf contextmenu richfaces onclick

我想使用Richfaces渲染一个上下文菜单,左键单击一个出现链接的文本(蓝色文本,下划线和光标onmouseover).因此,想象一下当点击时显示上下文菜单的链接.请注意,我不关心文本是否确实是一个链接,我只是希望它显示为链接.因此,即使普通文本也没问题,我会将其显示为使用CSS的链接.

我有以下条件:

  • 上下文菜单必须出现在客户端,而不会发出请求.
  • 上下文菜单必须使用rich:componentControl(这些"链接")出现在数据表中,因此rich:contextMenu必须重复使用.

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

  1. 如果我使用h:outputText(那将是理想的),我无法附加它rich:componentControl(我猜因为它无法触发onclick事件).
  2. 如果我使用a4j:commandLink,虽然我可以附加一个rich:componentControl,它会发出服务器请求.我尝试添加onclick="return false;"阻止请求,但RichFaces的增加由生成的JS rich:componentControl 无论是的onclick,这将导致此代码不能在全部杀入内线,当然上下文菜单中完全不出现.

有没有办法做到这一点?请记住,没有要求!

Vla*_*lev 2

你可以尝试

<rich:componentControl disableDefault="true" ...>
Run Code Online (Sandbox Code Playgroud)

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

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

如果文档有误,您可以使用 html 锚点。这个答案展示了如何使用 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>
Run Code Online (Sandbox Code Playgroud)

onclick="return false;"可以防止锚点将页面滚动到单击的链接。