【问题标题】:Can you put h:outputLink inside h:commandButton?你能把 h:outputLink 放在 h:commandButton 里面吗?
【发布时间】:2019-06-08 14:13:41
【问题描述】:

我需要一个将用户带回某个页面的按钮,为此我在 h:commandButton 中放置了一个 h:outputLink,如下所示:

  <h:commandButton styleClass="richButtonLogout">
   <h:outputLink value="/pages/somePage.xhtml">
 SomePage
</h:outputLink>

我希望该按钮在单击时将我带到指定的页面,但我在浏览器中看到了一个单独的按钮和一个单独的链接。因此,链接位于按钮之外。按钮不会做任何事情,而链接工作正常。 类似的方法适用于 html,所以我认为它可以。

【问题讨论】:

  • 不能在常规 HTML 中完成,所以不能在 JSF 中完成。为什么不简单地使用按钮的操作?

标签: jsf richfaces


【解决方案1】:

不,您不能将outputLink 放在commandButton 中。这些是独立的组件,不相互关联或相互依赖。

如果您希望按钮用作链接,您可以将h:button JSF 组件与outcome 属性结合使用,如下所示,

<h:button outcome="..."/>

请注意,虽然它确实有效,但 JSF button 组件使用 JavaScript 来实现此导航 - 因此它不是您所期望的普通链接。因为这些是导航结果(不是链接) - 这种方法的一个优点是您可以使用静态结果并在 faces-config.xml 中动态定义导航规则。

显然,要实现一个普通的旧链接,您也可以使用带有适当按钮样式的普通&lt;a href="..."&gt; 来实现相同的最终结果。

【讨论】:

  • 使用纯 html 而不是错误地使用(滥用)JSF 组件是非常有效的做法。
猜你喜欢
  • 2016-02-28
  • 2010-11-14
  • 1970-01-01
  • 1970-01-01
  • 2015-08-13
  • 1970-01-01
  • 2012-10-14
  • 2011-03-18
  • 1970-01-01
相关资源
最近更新 更多