【问题标题】:JSF/Facelets ajax view render issueJSF/Facelets ajax 视图渲染问题
【发布时间】:2012-05-14 10:12:24
【问题描述】:

我有一个带有两个命令链接按钮和两个输出面板的 .xhtml。一切都在同一个表格中。当我单击命令链接时,为什么我需要明确说明需要呈现哪些输出面板?如果没有指定,是否不应该根据 Spec 中的以下描述重新构建整个视图(或)我在混合东西吗?

当我们想在同一个视图中刷新组件时,我们真的需要设置action="navigation-rule"吗?

Link controls are typically used to perform complete form submissions for data storing.
As a consequence, the <a4j:commandLink> component has the execute="@form" setting by default. 

非常感谢任何意见。

以下代码供参考:

 <h:form>
        <div>
            <a4j:outputPanel layout="block">
                <!--Tab1 -->
                <a4j:commandLink
                    id="homeTabLinkId"
                    value="Tab1"
                    actionListener="somelistener" render="contentDIVId">
                    <h:outputText value=""/>
                </a4j:commandLink>
                <!--Hosts Tab -->
                <a4j:commandLink 
                    id="hostsTabLinkId"
                    value="Tab2"
                    actionListener="anotherlistener" render="contentDIVId">
                    <h:outputText value=""/>
                </a4j:commandLink>


            </a4j:outputPanel>
        </div>

        <a4j:outputPanel layout="block" id="contentDIVId">
            <!-- dynamically gets src based on tab click -->
            <ui:include id="tabBodyPanel" src="elexpression"/>
        </a4j:outputPanel>

        <a4j:outputPanel layout="block" id="anotherdiv">
            <h:outputText value="Inside second div"/>
        </a4j:outputPanel>

    </h:form> 

【问题讨论】:

    标签: jsf-2 richfaces facelets


    【解决方案1】:

    如果没有指定,是否应该根据 Spec 的以下描述重新构建整个视图(或)我是否在混合东西?

    这仅适用于同步请求。将&lt;a4j:commandLink&gt; 替换为&lt;h:commandLink&gt;,您将获得所描述的行为。


    当我们想在同一个视图中刷新组件时,我们真的需要设置 action="navigation-rule" 吗?

    没有。 action 方法可以只返回null 或void。否则,视图将被重新创建,如果您在视图上查看了作用域 bean,那么这不是您想要的。

    【讨论】:

    • 嗨 BalusC:a4j:commandlink 在规范中的描述让我感到困惑。另外,如果我们有请求范围的bean,那么我们是否需要在组件中指定action=navigation-rule-id?
    • 否,null 或 void 结果默认为当前视图。与请求范围 bean 的区别在于,它们只是在每次请求时重新创建。
    • 太棒了!感谢您抽出宝贵时间。
    猜你喜欢
    • 2023-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 2012-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多