如果导航保持在相同的JSF页面上,样式就不会加载



我有一个命令按钮,我绑定它的动作方法。

<f:view >
    <pm:page title="Title">
        <pm:view id="viewId" swatch="c">
            <p:outputPanel id="panelId">
                <h:form id="formId">   
    <p:commandButton action="#{bean.actionMethod}" update="formId" value="Click" />
                           </h:form>
                     </p:outputPanel>
               </pm:view>
    </pm:page >
</f:view>

内部动作方法。导航指向同一个页面。有些值在action方法内部更新。

public String applyPeriod(String caller)
{
    .....
    retrun SAMEPAGE;
}

一切正常。但是样式不会被呈现。页面返回到默认样式。

知道如何加载样式吗?我不想通过真正的刷新来改变URL。我应该通过ajax调用来管理它。

我跟踪页面的请求。没有样式的要求。

我使用primefaces, primefaces mobile,这是一个移动页面

如果您没有在表单的ID后面使用:,我相信这个问题可能与相对组件搜索有关,试图根据相对标识符找到表单。通过使用不同元素的ID,您将获得预期的行为,我认为是因为它们以相对于<p:commandButton/>上下文的方式正确引用。

尝试使用update="@form"update=":formId"。此外,作为旁注,如果你想使用完整的ajax,你不会重定向用户到任何地方,你的方法应该是void或返回null

我真的不知道背后的原因。然而,我通过提供精确的组件id来更新commandButton的属性来解决这个问题。

<p:commandButton action="#{bean.actionMethod}" update="ListOfComponentIds" value="Click" />

最新更新