【问题标题】:JSF h:button or Primefaces p:button - target _blankJSF h:button 或 Primefaces p:button - 目标 _blank
【发布时间】:2012-08-11 09:57:23
【问题描述】:

如何将 _blank 设置为 h:button 或 p:button 的目标?

现在我有一个简单的链接:

<h:outputLink value="#{bean.url}" target="_blank">
 <h:outputText value="Link" />
</h:outputLink>

但我希望它看起来像一个按钮(如果可能的话,一个 primefaces 样式的按钮)所以我决定用一个 p:button 来改变它。

<p:button value="Link" href="#{bean.url}" />

但现在我无法随意设置目标值。

有人有想法吗?

【问题讨论】:

    标签: jsf primefaces


    【解决方案1】:

    一点 javascript 会有所帮助:

    <p:button value="Link" onclick="window.open('#{bean.url}'); return false;" />
    

    在执行 javascript 之前,EL 表达式将被替换。

    【讨论】:

    • 说明:&lt;h:outputLink&gt; 生成支持target 属性的HTML &lt;a&gt; 元素,因此它也作为JSF 组件属性提供。 &lt;h/p:button&gt; 生成的 HTML &lt;input type="button"&gt; 根本不支持 target 属性,因此 JSF 也不会为其提供组件属性。
    • 非常感谢!我添加了“return false”以避免回发。 &lt;p:button value="Link" onclick="window.open('#{bean.url}'); return false;" /&gt;
    【解决方案2】:

    我用过:

    <h:form target="_blank">
          <p:commandButton value="Run" action="#{bean.createReport}"  />
        </h:form>
    

    这没关系。

    【讨论】:

      【解决方案3】:

      将 ajax="false" 添加到 primefaces 命令按钮

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-04-21
        • 2012-10-20
        • 2013-02-22
        • 1970-01-01
        • 2015-05-24
        • 1970-01-01
        • 2017-12-15
        相关资源
        最近更新 更多