【问题标题】:p:commandButton or p:button with actionListener and outcome?p:commandButton 或 p:button 与 actionListener 和结果?
【发布时间】:2014-12-26 04:39:04
【问题描述】:

我正在使用 PrimeFaces 并有一个保存按钮,基本上一个维护任务被发送到我的页面,我在这里编辑它,然后按保存,它应该被保存到数据库,然后重定向到原始页面。我有一个有效的 Save 方法,但似乎无法同时启动导航和方法。

    <p:commandButton value="#{message.commonButtonSave}"
        title="#{message.commonSaveTooltip}"
        rendered="#{maintenanceTaskEnquiryBean.screenMode == 'editTasks'}"          
        disabled="#{maintenanceTaskEnquiryBean.outstandingEditCount != 0}"
        action="/definemaintenance/MaintenanceTasksActivity"
        actionListener="#{maintenanceTaskEnquiryBean.save}" >           
    </p:commandButton>  

我现在有什么,但我尝试了很多不同的变体,包括 p:button 和 p:commandButton、listener/actionListener、target/outcome/action 等...

有什么建议吗?

谢谢。

【问题讨论】:

    标签: jsf jakarta-ee primefaces actionlistener commandbutton


    【解决方案1】:

    如果要执行操作,然后导航,请使用action 属性并返回导航规则作为结果。

    <p:commandButton value="#{message.commonButtonSave}"
        title="#{message.commonSaveTooltip}"
        rendered="#{maintenanceTaskEnquiryBean.screenMode == 'editTasks'}"          
        disabled="#{maintenanceTaskEnquiryBean.outstandingEditCount != 0}"
        action="#{maintenanceTaskEnquiryBean.save}">           
    </p:commandButton>  
    

    save() 方法看起来像这样

    public String save() {
        // perform whatever you need to, and then
        return "<some navigataion rule>";
    }
    

    返回字符串应该打开所需的页面/definemaintenance/MaintenanceTasksActivity。

    【讨论】:

    • 这是有道理的。有什么地方可以指导我学习如何编写导航规则?
    • @hello123 This tutorial 似乎很好地涵盖了 JSF 导航。
    • 有趣的是,这就是我今天下午一直在阅读的教程。当我使用 return="MaintenanceTasksActivity" 时没有任何反应,我也尝试过 /definemaintenance/MaintenanceTasksActivity 和 definemaintenance/MaintenanceTasksActivity ,但没有成功。有什么建议吗?
    • 会不会是因为我的 Bean 是 ViewScoped 而不是 RequestScoped?
    • 在 bean 的范围内不应该有任何东西。这完全取决于您的项目结构。如果你返回MaintenanceTasksActivity,它会寻找MaintenanceTasksActivity.xhtml,你有吗(区分大小写)?查看this tutorial(如果您还没有:))了解基本内容。尝试让基本导航工作,也许在一些测试页面上,当你清楚它是如何工作的时,将它应用到你的实际案例中。
    猜你喜欢
    • 2014-09-12
    • 2015-01-22
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-04
    • 2016-06-02
    • 2013-10-15
    相关资源
    最近更新 更多