【问题标题】:How to use h:outputLink without destroying the bean如何在不破坏 bean 的情况下使用 h:outputLink
【发布时间】:2016-11-16 21:49:04
【问题描述】:

我使用特殊协议 (SIP) 通过我的 xhtml 页面使用类似这样的方式打开软件电话

<h:outputLink value="sip:123456" />

但是正在破坏我的 bean,使页面无用,是否有解决方法?任何想法都会被欣赏 pd:我也在尝试使用primefaces。

更新

你的 bean 是什么范围?

是一个viewscope,我不需要传递任何参数,这是一个特殊的协议sip:,它的作用是打开一个名为softphone的程序

普通的html你会怎么做?

我更正了标题谢谢,在正常的 html 中会是这样的 &lt;a href="sip:3378984" &gt; call &lt;/a&gt;

你的 bean 什么时候会被销毁?当页面显示时,或者如果您 点击链接?但是,你不能点击链接,因为没有 要渲染的内容。你如何检查被破坏的bean?哪个豆子?

当我点击链接时,它转到我的@Predestroy 方法,并打开软件电话程序(没有要显示的页面),在我点击链接后,页面变得无法使用,如链接、按钮等,无法使用

我也使用了 primefaces 命令链接

 <p:commandLink value="prime link" action="#{testBean.redirect()}"/>

 public void redirect() throws IOException {
    ExternalContext externalContext = FacesContext.getCurrentInstance().getExternalContext();
    externalContext.redirect("sip:123456");
}

【问题讨论】:

  • 你的bean是什么范围?如果您正在进行对话并且它是 ConversationScoped,则必须通过 &lt;f:param&gt;cid-Parameter 传递给新页面。
  • 普通的html你会怎么做?顺便说一句,标题是关于commandLink,内容是关于outputLink
  • PrimeFaces 没有h:outputLink,因此如果失败,则与 PF 无关
  • 你的 bean 什么时候会被销毁?何时显示页面或单击链接?但是,您无法单击该链接,因为没有要呈现的内容。你如何检查被破坏的bean?哪个豆子?
  • 你可以试试&lt;h:outputLink target="_blank" value="sip:123456"&gt;linktext&lt;/h:outputLink&gt; 因为你要离开页面并且你的bean有viewscope,它会被销毁。 target='_blank' 使用新标签页/页面打开链接,您的页面保持不变。

标签: jsf jsf-2.2


【解决方案1】:

因此,经过一些研究和以前用户的一些 cmets,我创建了一个脚本来打开新窗口并在几毫秒后关闭它

function clicktocallwindowf(number) {
        var wnd = window.open("sip:" + number);
        setTimeout(function () {
            wnd.close();
        }, 10);
        return false;
    }


 <p:commandLink onclick="clicktocallwindowf(#{phonebean.number})"  styleClass="Fs16 icon-phone-1"/>

希望这对某人有所帮助,感谢你们为我提供了更多方向的 cmets!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-05
    • 1970-01-01
    • 2010-12-21
    • 1970-01-01
    • 2021-02-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多