【问题标题】:rich faces server switch type富面孔服务器切换类型
【发布时间】:2011-05-23 11:17:35
【问题描述】:

丰富的选项卡面板有一个服务器切换模式,当使用这种模式时会发生什么,也就是说,如果我在每个选项卡中放置一个表单,我希望只发布这个表单并且没有调用任何操作。但是调用了 action="#{licenseIMC.downloadRequest}"。如果我将所有选项卡面板放在一个表单中会发生什么。

<rich:tab id="updateLicensesTab" label="Update licences">
                    <h:form id="updateLicensesForm">              


                                <h:outputText value="Request file" />
                                <a4j:htmlCommandLink id="request"
                                                     action="#{licenseIMC.downloadRequest}"
                                                     value="Generate License Request"
                                                     title="Generate License Request" />

【问题讨论】:

  • “仅发布此表单且未调用任何操作”是什么意思?如果您单击链接,究竟会发生什么?它不提交表单吗?

标签: java jsf richfaces


【解决方案1】:

切换模式仅对从一个选项卡切换到另一个选项卡时发生的情况产生影响。服务器模式意味着每次切换到它都会重新加载选项卡(和页面)。 ajax 模式意味着它将重新加载选项卡而不是页面。客户端模式意味着它不会从服务器重新加载数据。仅当您的基础数据可能已更改并且您希望在切换选项卡时反映此更改时,服务器和 ajax 模式才有意义。

如果您将所有选项卡放在一个表单中,则所有选项卡都将在您提交表单时提交(例如,执行 htmlCommandLink)。

【讨论】:

  • 我想知道是否切换类型服务器的选项卡面板已切换,并且包含此选项卡的表单已发布到服务器,为什么方法 #{foo.dosomething} 像单击它一样调用。我只想要提交表单中的值更新数据模型没有按钮、命令链接、...触发操作。
【解决方案2】:

针对您的问题和您对 morja 的回答的评论: 选项卡内的命令按钮和链接的单独操作不会被触发。但是,标签标签中指定的操作将被触发

在您的示例中,htmlCommandLink 不会被解雇,downloadRequest() 不会被调用,但如果您有:

<rich:tab id="updateLicensesTab" label="Update licences" action="#{licenseIMC.tabChange}">
                    <h:form id="updateLicensesForm">      

然后将调用tabChange 函数。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-28
    • 2011-07-27
    • 2017-09-24
    • 2011-01-28
    • 1970-01-01
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多