【问题标题】:Command Button inside composition page in JSFJSF中合成页面内的命令按钮
【发布时间】:2013-02-19 11:18:02
【问题描述】:

我遇到了与 user1598186 在他的问题中所说的相同的问题:p:commandButton doesn't call bean's method in an <ui:include> page

然而,没有给出解决方案(他已经完全删除了&lt;ui:include&gt;标签,而是使用了变量)

当我在 commandButton 中调用它时,有什么方法可以使用 &lt;ui:include&gt; 并且仍然执行我的支持 bean 的方法。

任何帮助将不胜感激。

【问题讨论】:

    标签: jsf primefaces uiinclude


    【解决方案1】:

    EL 2.2 方法参数(因此,#{bean.method()} 而不是#{bean.method})可用于传递可在命令按钮的actionListener 属性中使用的方法签名。以下是传递 ManagedBean 属性以及传递方法签名的示例:

    主页

    <ui:include src="/jointeam.xhtml">
      <ui:param name="propertyValue" value="#{managedBean.property1} />
      <ui:param name="method" value="#{managedBean.performAction()}" />
    </ui:include>
    

    jointeam.xhtml

    ...
    
    <h:inputText value="#{propertyValue}" />
    
    ...
    
    <p:commandButton value="Submit" actionListener="#{method}" />
    

    您可以看到它在代码重用方面的强大功能,并且在许多情况下,它比复合组件更简洁且更易于使用。

    【讨论】:

    • 非常感谢。这帮助很大!
    • 即使重定向是通过 bean 中的方法完成的,&lt;ui:param&gt; 也会起作用吗?例如:&lt;ui:include src="#{managedBean.navigation}"&gt; &lt;ui:param name="method" value="#{managedBean.method}"&gt; &lt;/ui:include&gt; 请帮忙..
    • @sciFi 我相信 src 属性需要一个字符串属性,所以只要导航返回一个有效的 FILE PATH 那么它应该可以工作。请记住,该组件包含一个 xhtml 文件,而不是请求一个 xhtml 页面
    • 我确实在我的 bean 中返回了一个页面的名称(使用 if 条件),所以它是一个返回为 my_page.xhtml 的字符串,但是使用 &lt;ui:param&gt; 传递的参数没有在里面读取my_page(在&lt;ui:compostion&gt;里面。我做错了什么吗?请帮忙..
    • @sciFi 嗯...也许您可以在单独的问题中发布您的代码?在 cmets 部分很难诊断问题。
    猜你喜欢
    • 2013-07-30
    • 1970-01-01
    • 2011-07-09
    • 2017-10-04
    • 2010-10-13
    • 1970-01-01
    • 2014-04-24
    • 2014-08-29
    • 1970-01-01
    相关资源
    最近更新 更多