我有一个命令按钮,我绑定它的动作方法。
<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" />